문제
컴퓨터를 제조하는 회사인 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.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 sum=0;
for(int i = 0; i < 5; i++) {
int temp = Integer.parseInt(st.nextToken());
sum+=temp*temp;
}
System.out.println(sum%10);
}}
1. br
숫자 5개를 입력받아 숫자의 제곱을 모두 더해서 10으로 나눈 나머지를 구하는 문제이다.
br로 입력받아서 tokenizer으로 숫자를 나누었다. 그 값을 임시 변수 temp에 저장하여 제곱값을 sum에 더해주었다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int result = 0;
for(int i=0; i<5; i++) {
int n = sc.nextInt();
result += n*n;
}
System.out.println(result%10);
sc.close();
}
}
2. Scanner
스캐너로 간단하게 해결할 수 있다.
Scanner와 BufferedReader의 속도, 메모리 차이를 비교해볼 수 있다.
위의 Scanner 보다 br으로 처리했을 때 메모리, 시간 모두 좋은것을 확인할 수 있다.
'Algorithm > baekjoon' 카테고리의 다른 글
백준 1874 파이썬 : 스택 수열 (0) | 2022.10.06 |
---|---|
JAVA : 백준 2562번 최댓값 (0) | 2022.06.12 |
JAVA : 2438번 별찍기-1 (0) | 2022.06.10 |
JAVA : 백준 1546번 평균 (Arrays.sort 배열 오름차순 정렬) (0) | 2022.06.09 |
JAVA : 백준 1330번 두 수 비교하기 (0) | 2022.06.09 |