free from
[백준] 14626 ISBN 본문
728x90
반응형
들어가기
- 14626 ISBN은 모듈로 연산 문제입니다.
- ISBN는 모듈러 연산의 규칙을 따르는 13자리의 일련번호로 구성됩니다.
- 13자리 일련번호의 마지막 숫자는 앞에서부터 각 자리마다 가중치 1, 3, 1, 3…. 를 곱한 것을 모두 더하고, 그 값을 10으로 나눈 나머지가 0이 되도록 만드는 숫자로 정의합니다.
- 아래 예시는 13자리의 마지막 숫자 m의 계산 과정입니다.
978896832227[m]
10 - (1*9 + 3*7 + 1*8 + 3*8 + 1*9 + 3*6 + 1*8 + 3*3 + 1*2 + 3*2 + 1*2 + 3*7)%10 = m
10 - 137%10 = m
10 - 7 = 3
- 문제의 요구사항은 마지막 숫자를 제외한 1~12자리 일련번호 중 손상된 1개의 일련번호를 복구하는 것입니다.
풀이
- 우선 손상된 1개의 일련번호의 자리를 구하는 것이 핵심입니다.
- 그런 다음 손상된 일련번호를 제외한 숫자들을 가중치로 합산합니다.
intput > 978896832*273
sum = (1*9 + 3*7 + 1*8 + 3*8 + 1*9 + 3*6 + 1*8 + 3*3 + 1*2 + 1*2 + 3*7 + 1*3)
# sum = 138
- (sum % 10 + 손상된 일련번호 * 가중치 %10) % 10 = 0
- 손상된 일련번호의 경우의 수는 0~9입니다.
- 0~9까지 for문으로 iterate하여 0을 만드는 일련번호를 찾는 것으로 정답을 구할 수 있습니다.
- 위 예시에서 정답은 2가 되겠네요.
코드
728x90
'개발 > 알고리즘' 카테고리의 다른 글
[백준] 2909 캔디 구매 (0) | 2023.01.27 |
---|---|
[백준] 23253 자료구조는 정말 최고야 (0) | 2023.01.26 |
[백준] 3190 뱀 (1) | 2021.04.03 |
[백준] 17135 캐슬 디펜스 (0) | 2021.03.21 |
[백준] 1865 웜홀 (0) | 2021.03.14 |
Comments