728x90
반응형
SMALL
문제
- 마지막 자리를 제외하고 순서대로 2 3 4 5 6 7 8 9 2 3 4 5 의 가중치를 곱함
- 각 자리수에 가중치를 곱한 수를 모두 더함
- 102 % 11 (11로 나눈 나머지 값을 구함)
- 해당 값을 11에서 뺌, 단 값이 두 자리인 경우 10으로 나눈 나머지 값을 구함
- 주민번호의 마지막 자리와 일치하면 유효
💡나의 풀이
jumin_no = list(input("주민등록번호 13자리를 '-'없이 입력하세요: ")) # str list
num = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
total = 0
for i in range(12):
sum = int(jumin_no[i]) * num[i]
total += sum
print(f'숫자를 모두 더한 값은 {total}입니다')
# 뺀 값이 두자리 라면 다시 10을 나눈 나머지값을 구함
num = (11 - (total % 11)) % 10
if int(jumin_no[-1]) == num:
print('유효한 주민번호 입니다')
else:
print('주민번호를 확인하세요')
코드 공유 받습니다. 😀
728x90
반응형
LIST
'KDT > 과제' 카테고리의 다른 글
[파이썬, Python] 서브워드분리(subword segmentation) - BPE 알고리즘 (0) | 2023.06.27 |
---|---|
[파이썬, Python] 파일 입출력 - 영어 단어장을 만들어보자! 📖 (0) | 2023.03.15 |
[파이썬, Python] 랜덤한 로또 번호를 뽑아보자🍀 (0) | 2023.03.10 |
[파이썬, Python] 가위바위보 - 컴퓨터와 가위바위보 하기! ✌ (0) | 2023.03.10 |
[파이썬, Python] 주사위 게임 - 주사위 값을 맞춰라!🎲 (0) | 2023.03.10 |