
ISBN-13 ๊ฒ์ฆ ์ซ์ ์ฐพ๊ธฐ
ISBN-13์ 13์๋ฆฌ. (๊ฐ์ค์น ๊ณฑํ ์ซ์๋ค์ ํฉ) % 10 == 0 ๋์ด์ผ ํจ.
๊ฐ์ค์น๋ ํ์๋ฒ์งธ(์ธ๋ฑ์ค 0,2,4...)๋ 1 ๊ณฑํ๊ณ , ์ง์๋ฒ์งธ(1,3,5...)๋ 3 ๊ณฑํจ.
์ธ๋ฑ์ค๋ 0๋ถํฐ๋๊น ํท๊ฐ๋ฆฌ์ง ๋ง ๊ฒ.
* ์์ผ๋ฉด ๊ทธ ์๋ฆฌ๋ง ๋ณ์๋ก ๋๊ณ ์ธ๋ฑ์ค ๊ธฐ๋กํด๋ .
๋๋จธ์ง ์ซ์๋ ๊ฐ์ค์น ๊ณฑํด์ ํฉ์ฐํ๊ณ * ์๋ฆฌ๋ (๋์ ํฉ + ๊ฐ์ค์น ๊ณฑํ x)๊ฐ 10์ผ๋ก ๋๋ ๋จ์ด์ง๋๋ก ๋ง๋ฆ.
ํ์๋ฒ์งธ๋ฉด ๊ทธ๋๋ก x, ์ง์๋ฒ์งธ๋ฉด x*3 ๋ํ๋ฉด ๋จ. ๋ง์ง๋ง์ 0~9 ๋ฒ์ ๋๋ ค์ ์ฑ๋ฆฝํ๋ ๊ฐ ์ฐพ์ผ๋ฉด ๋.
import sys
input=sys.stdin.readline
isbn=input().strip()
result=0
idx=0
for i in range(len(isbn)):
if isbn[i]=='*':
idx=i #์์น๋ง ๊ธฐ๋ก
continue
if i%2==0:
result+=int(isbn[i])
else:
result+=int(isbn[i])*3
for x in range(0,10):
if idx%2==0:
weighted_x=x
else:
weighted_x=x*3
if (result+weighted_x)%10==0:
print(x)
๋ฐ์ํ
'๐ Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| โ BOJ 5639 - ์ ์ ์ํ -> ํ์ ์ํ (1) | 2025.07.07 |
|---|---|
| โ BOJ 9935 - ์คํ ํ์ฉ (0) | 2025.07.07 |
| โ BOJ 2448 - ์ฌ๊ท ๋ณ์ฐ๊ธฐ (0) | 2025.07.05 |
| โ BOJ 1987 - DFS, Backtracking, Bitmasking (1) | 2025.07.04 |
| โ BOJ 1504 - ๋ค์ต์คํธ๋ผ ์์ฉ (0) | 2025.07.04 |