Python

[Python] Python 문제풀이 (주민등록번호 정상 판별)

땅콩새싹 2020. 10. 14. 19:58
반응형

Python 문제풀이 (주민등록번호 정상 판별)

 


 

문제

유해정보가 포함된 콘텐츠를 제공하기 위해서는 성인임을 확인해야한다.

아래 주민등록번호의 규칙을 확인하고 올바른 주민등록번호일 경우 성인인증을 해보시오.

 

입력&출력

>>>

주민등록번호를 숫자만 입력하세요. (정상적인 주민번호 입력)

정상적인 주민등록번호입니다.

>>>

주민등록번호를 숫자만 입력하세요. (정상적이지 않은 주민번호 입력)

정상적이지 않은 주민등록번호입니다.

 

주민등록 번호 규칙

 

코드설명

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sn = input("주민등록번호 : ")
rule = "234567892345"
number = 0
 
for i in range(len(rule)):
    number = number + (int(sn[i])*int(rule[i]))
 
if 11-(number%11)<10:
    if 11-(number%11)==int(sn[12]):
        print("정상적인 주민등록번호입니다.")
elif 11-(number%11)>10:
    if 11-(number%11)-10==int(sn[12]):
        print("정상적인 주민등록번호입니다.")
else:
    print("정상적인 주민등록번호가 아닙니다.")

먼저 input으로 주민등록번호를 입력받아줍니다.

rule 변수에 저장된 숫자는 주민등록번호 규칙에 각 자리의 숫자에 순서대로 곱할 숫자를 미리 저장해 두고 반복문을 통해 입력받은 주민등록번호와 rule의 숫자를 순서대로 곱해 그 숫자를 number 변수에 저장해줍니다.

그리고 그 숫자가 마지막 자리수와 일치한다면 그 주민등록번호는 정상적인 주민등록번호이고 일치하지 않는다면 정상적인 주민등록번호가 아니라고 판별합니다. 그리고 number변수의 수가 10이상이라면 그 숫자에서 10을 빼고 판별하면 됩니다.

실행화면은 개인정보가 필요해서 올리지 않겠습니다!

반응형