free from

[백준] 14626 ISBN 본문

개발/알고리즘

[백준] 14626 ISBN

고양이레옹이 2023. 1. 28. 17:34
반응형

들어가기

출처 : 백준

  • 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