728x90
t = int(input())
number_list=[ # 0~9까지 나오는 수
[10], #0, 원래는 0이지만 출력할때 10이 나와야해서 고친다.
[1], #1
[2,4,8,6], #2
[3,9,7,1], #3
[4,6], #4
[5], #5
[6], #6
[7,9,3,1], #7
[8,4,2,6], #8
[9,1] #9
]
for tc in range(t):
result = 0
a, b = map(int, input().split())
len_list = len(number_list[a%10])
print(number_list[a%10][(b-1)%len_list])
최대 들어갈수있는 숫자가 a=100이고 b=1,000,000 인데 a**b에 대해서 구해야하는 문제이다.
그래서 일의자리 숫자로 나올수 있는 number_list를 구해놓고, 이에 맞게 돌려서 구했다.
반복문으로 number_list를 구할수있었지만 이정도는 그냥 손으로 구해놓는게 서로서로 이득이다. ㅋㅋ
import sys
input = sys.stdin.readline
그리고 처음엔 이걸 안쓰고 했는데 사용했을때에 비해 시간이 약 두배에 가깝게 소요되었다.
swea나 프로그래머스에서는 사용을 못하기때문에 최대한 사용을 안하려고 하고있지만
백준에서는 가끔씩 사용해봐야겠다.
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 1252 이진수 덧셈 (0) | 2021.02.04 |
---|---|
[백준] 2004 조합 0의 개수 (0) | 2021.02.04 |
[백준] 2480 주사위 세개 (0) | 2021.02.03 |
[백준] 2960 에라토스테네스의 체 (0) | 2021.02.03 |
[백준] 1032 명령프롬프트 (0) | 2021.02.03 |