| 문제
컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다.
예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다.
| 입력
첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다.
| 출력
첫째 줄에 검증수를 출력한다.
| 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[5];
int sum = 0;
for(int i=0; i<5; i++) {
arr[i] = Integer.parseInt(st.nextToken());
sum += (int) Math.pow(arr[i], 2);
}
System.out.println(sum % 10);
}
}
| 정리
입력 받은 값들의 제곱을 sum 변수에 더해주는 방식으로 풀이했다.
다 풀고 나서 배열을 사용하지 않고도 풀 수 있네? 라는 생각이 들어 배열 활용을 안하고 풀어봤다.
예상대로 메모리는 적게 사용하지만 시간은 더 걸림!