PS(Problem Solving)/BOJ

[백준/BOJ] 1009번: 분산처리

JunsuKim 2021. 11. 8.
728x90

https://www.acmicpc.net/problem/1009

 

1009번: 분산처리

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)

www.acmicpc.net

문제

해설

ab개의 데이터가 있고 10개의 컴퓨터가 있다고 한다.

11번째 데이터는 1번 12번 데이터는 2번 순으로 처리를 한다.

따라서 ab을 10으로 나누면 원하는 값이 나올 것이다.

하지만 무작정 제곱을 하다보면 자료형의 범위를 초과하는 경우가 생겨 성공 처리가 되지 않는다.

이를 해결하기 위해 temp라는 변수를 설정하여 1의 값을 저장하고, 제곱의 수만큼 반복문을 돌리며 temp * a % 10을 하면 된다. 만약 나머지가 0이면 10번째 컴퓨터가 처리를 하게 된다.

소스 코드

fun main(){
    val testCase = readLine()!!.toInt()
    for(i in 0 until testCase){
        val input = readLine()!!.split(" ")
        val a = input[0].toInt()
        val b = input[1].toInt()
        var temp = a
        for(j in 0 until b-1 ) temp = temp * a % 10
        if(temp == 0) temp = 10
        println(temp)
    }
}
728x90

댓글