Date:

1) 문제 링크

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

2) 접근

자연수의 거듭제곱에서 나타나는 일의 자리의 규칙성에 관한 문제이다. 어차피 일의 자리는 10가지 밖에 없으니 처음에는 하드코딩을 해서 풀 생각을 했다. 그리고 그렇게 풀어버렸다.

3) 풀이

unit_digit = [ [10], [1], [6,2,4,8], [1,3,9,7], [6,4], [5], [6], [1,7,9,3], [6,8,4,2], [1,9] ]
T = int(input())
for i in range(T):
    a, b = map(int, input().split())
    cycle = len(unit_digit[a%10])
    print(unit_digit[a%10][b%cycle])

4) 피드백

역시 하드코딩은 좀 그렇다. TLE 안 나게 거듭제곱하는 방법은 없을까? -> 모든 1의 자리는 공통적으로 지수 4를 주기로 하여 순환한다. 따라서 b %= 4(단, b % 4 == 0인 경우는 b = 4) 처리 후 거듭제곱 하면 깔끔!

Leave a comment