[백준/파이썬] 1009번 분산처리 풀이

업데이트:



문제 정보


풀이

문제

a^b의 일의 자리 숫자 패턴을 이용해 마지막 데이터가 몇 번 컴퓨터인지 구하는 문제입니다.

일의 자리는 주기적으로 반복되므로, 큰 거듭제곱을 직접 계산할 필요가 없습니다.

코드

for T in range(int(input())):
    a, b = map(int, input().split())
    a%=10
    al = [a]
    i = 0
    while True:
        n = ((al[i]%10)*a)%10
        if a == n:
            break
        al.append(n)
        i+=1

    r = al[(b-1)%len(al)]
    print(r if r != 0 else 10)

설명

각 테스트케이스마다:

  • a % 10 기준으로 일의 자리 순환 배열을 만들고
  • b번째 항에 해당하는 값을 인덱스로 찾아 출력합니다.

결과가 0이면 10번 컴퓨터를 의미하므로 10을 출력합니다.



댓글남기기