본문 바로가기

ALGORITHM

백준 1009 분산처리 (Java)

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