[Baekjoon] 2475 검증수 (브론즈 5)


문제

컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다.

예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.

테스트 케이스 및 예시 결과

0 4 2 5 6
1

해답

import java.util.*;
import java.io.*;

public class Main {
    public static void solution() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int sum = 0;

        while (st.hasMoreTokens()) {
            int num = Integer.parseInt(st.nextToken());
            sum += Math.pow(num, 2);
        }

        int result = sum % 10;
        bw.write(String.valueOf(result));

        bw.flush();
        bw.close();
        br.close();
    }

    public static void main(String[] args) throws IOException {
        solution();
    }
}

풀이

문제 분할

해설

StringTokenizer를 통해 다섯 자리 수를 하나씩 순서대로 취득하고 sum 변수에 각 자릿수의 제곱을 한 값을 더해 놓는다.

그 후 sum을 10으로 나눈 나머지를 취득하고 그 값을 출력한다.