백준/10001 - 15000
[백준] 14626번 : ISBN(JAVA)
lms0806
2021. 7. 19. 01:15
728x90
https://www.acmicpc.net/problem/14626
14626번: ISBN
ISBN(International Standard Book Number)은 전 세계 모든 도서에 부여된 고유번호로, 국제 표준 도서번호이다. ISBN에는 국가명, 발행자 등의 정보가 담겨 있으며 13자리의 숫자로 표시된다. 그중 마지막 숫
www.acmicpc.net
풀이
13개의 숫자로 이루어진 문자가 주어지고 훼손된 *에 들어갈 숫자를 찾는 문제입니다.
*의 위치만 기록하고 나머지는 짝수번째면 그 숫자 그대로 아니면 *3을 하여 합을 구해줍니다.
*에 들어갈 수는 0부터 9까지이므로 완탐으로 while문을 돌려주면 됩니다.
*의 위치가 짝수면 (합 + 찾는 수) % 10 이 0일 때 찾는수가 되므로 출력
홀수면 (합 + 찾는 수 * 3) % 10이 0일 때 찾는 수가 되므로 출력
해주면 됩니다.
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int check = 0, num = 0;
for(int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if(ch != '*') {
num += i % 2 == 0 ? ch - '0' : (ch - '0') * 3;
}
else {
check = i;
}
}
int answer = 0;
while(true) {
if(check % 2 == 0) {
if((num + answer) % 10 == 0) {
System.out.print(answer);
break;
}
}
else {
if((num + answer * 3) % 10 == 0) {
System.out.print(answer);
break;
}
}
answer++;
}
}
}
728x90