๐งฉ Baekjoon 14626 - ISBN
๋ฌธ์
ISBN(International Standard Book Number)์ ์ ์ธ๊ณ ๋ชจ๋ ๋์์ ๋ถ์ฌ๋ ๊ณ ์ ๋ฒํธ๋ก, ๊ตญ์ ํ์ค ๋์๋ฒํธ์ด๋ค. ISBN์๋ ๊ตญ๊ฐ๋ช , ๋ฐํ์ ๋ฑ์ ์ ๋ณด๊ฐ ๋ด๊ฒจ ์์ผ๋ฉฐ 13์๋ฆฌ์ ์ซ์๋ก ํ์๋๋ค. ๊ทธ์ค ๋ง์ง๋ง ์ซ์๋ ์ฒดํฌ๊ธฐํธ๋ก ISBN์ ์ ํ์ฑ ์ฌ๋ถ๋ฅผ ์ ๊ฒํ ์ ์๋ ์ซ์์ด๋ค. ์ด ์ฒดํฌ๊ธฐํธ๋ ์ผ๋ จ๋ฒํธ์ ์์์๋ถํฐ ๊ฐ ์๋ฆฌ๋ง๋ค ๊ฐ์ค์น 1, 3, 1, 3โฆ. ๋ฅผ ๊ณฑํ ๊ฒ์ ๋ชจ๋ ๋ํ๊ณ , ๊ทธ ๊ฐ์ 10์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ 0์ด ๋๋๋ก ๋ง๋๋ ์ซ์ m์ ์ฌ์ฉํ๋ค. ์ํ์ ์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ISBN์ด abcdefghijklm ์ผ ๋, a+3b+c+3d+e+3f+g+3h+i+3j+k+3l+m โก 0 (mod 10)
- ์ฆ, ์ฒดํฌ๊ธฐํธ m = 10 - (a+3b+c+3d+e+3f+g+3h+i+3j+k+3l) mod 10 ์ด๋ค.
- ๋จ, 10์ผ๋ก ๋๋ ๋๋จธ์ง ๊ฐ์ด 0์ผ ๊ฒฝ์ฐ ์ฒดํฌ๊ธฐํธ๋ 0์ด๋ค.
์ ๋ถ๋ํ๊ต ์ค์๋์๊ด์์ ์ฌ์๋ก ์ผํ๊ณ ์๋ ์ํ์ด๋ ์ฑ ์ ๋ฆฌ๋ฅผ ํ๋ค๊ฐ ๊ฐ๊ตฌ์์ด ๊ดํ์ด์ ์ํด์ ISBN์ด ํผ์๋ ๋์๋ค์ ๋ฐ๊ฒฌํ๋ค. ๊ดํ์ด๋๋ฌธ์ ์ผ๊ทผํด์ผ ํ๋ ๋ถ์ํ ์ํ์ด๋ฅผ ์ํด์ ์์๋ ์๋ฆฌ์ ์ซ์๋ฅผ ์ฐพ์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด์ฃผ์.
์ ๋ ฅ
ISBN 13์๋ฆฌ ์ซ์๊ฐ ์ ๋ ฅ๋๋ค. ํผ์๋ ์ซ์๋ *๋ก ํ์ํ๋ค. (ํผ์๋ ์ผ๋ จ๋ฒํธ๋ ์ฒดํฌ๊ธฐํธ๋ฅผ ์ ์ธํ ๋ฌด์์ ํ ์๋ฆฌ์ด๋ค.)
์ถ๋ ฅ
ํผ์๋ ์ซ์ *์ ์๋ง์ ์ซ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์
โ ์ ๋ ฅ 1
1
9788968322*73
โ ์ถ๋ ฅ 1
1
2
์์ฑ ์ฝ๋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
// 1. ๋ณ์ ์ ์ธ ๋ฐ ์ด๊ธฐํ
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String isbn = br.readLine();
int result;
int missingWeight = 0;
int checkDigit = isbn.charAt(12) - '0';
int r = 0;
// 2. '*'๋ฅผ ์ ์ธํ ๊ฐ์ค์น ๋ฐ์ ํฉ ๊ณ์ฐ
for (int i = 0; i < 12; i++) {
char c = isbn.charAt(i);
int weight = (i % 2 == 0) ? 1 : 3;
if ('*' == isbn.charAt(i)) {
missingWeight = weight;
} else {
r += (c - '0') * weight;
}
}
// 3. '*' ์๋ฆฌ ๊ฐ ๊ณ์ฐ
int mod = (10 - (r + checkDigit) % 10) % 10;
if (missingWeight == 1) {
// ๋ชจ๋๋ฌ ์ญ์ ์ฒ๋ฆฌ ๋ถํ์
result = mod;
} else {
// ๋ชจ๋๋ฌ ์ญ์ ์ฒ๋ฆฌ ๋ฐ ๋ชจ๋๋ฌ ์ฐ์ฐ ํ์
result = (7 * mod) % 10;
}
// 4. ์ถ๋ ฅ
System.out.println(result);
}
}
weight
๊ฐ 3์ผ ๊ฒฝ์ฐ3x โก โ(r + checkDigit)
์ด๋ฏ๋ก ๋ชจ๋๋ฌ ์ญ์ ๋ฐ ๋ชจ๋๋ฌ ์ฐ์ฐ์ ์ฒ๋ฆฌํด์ผ ํ๋ค.- ์ฌ๊ธฐ์ ๋ชจ๋๋ฌ ์ญ์์ด๋ ์ด๋ค ์
a
๊ฐ ์์ ๋,a
์ ๊ณฑํด์ ๋๋จธ์ง๊ฐ 1์ด ๋๋ ์b
๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค. - ์ฆ, 3์ ๋ํ ๋ชจ๋๋ฌ ์ญ์์ 7์ด๋ค.