1. 문제 링크
1009번: 분산처리
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)
www.acmicpc.net
2. 문제 및 입출력예제
3. 문제 풀이
컴퓨터 10대로 a^b개의 데이터를 처리하는 문제이다.
a와 b의 값이 커질수록 계산이 느려지고 시간 초과가 발생할 것 같았다.
그래서 a^b를 하되 10(컴퓨터 개수)으로 나눈 한자리 수만 남겨서 곱셈을 이어나갔다.
계산 결과를 출력하면 된다.
여기서 나머지가 0인 경우가 있는데 컴퓨터는 1~10대이기에 10으로 출력했다.
4. 코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
for (int i = 0; i < t; i++) {
String str = br.readLine();
String st[] = str.split(" ");
int a = Integer.parseInt(st[0]);
int b = Integer.parseInt(st[1]);
int num = 1;
for (int j = 0; j < b; j++) {
num = (a * num) % 10;
if (num == 0) {
num = 10;
}
}
System.out.println(num);
}
}
}
'ALGORITHM' 카테고리의 다른 글
백준 1085 직사각형에서 탈출 (Java) (0) | 2023.01.22 |
---|---|
백준 1436 영화감독 숌 (Java) (0) | 2023.01.21 |
백준 1152 단어의 개수 (Java) (0) | 2023.01.19 |
백준 1546 평균 (Java) (0) | 2023.01.18 |
백준 3052 나머지 (Java) (0) | 2023.01.17 |