STUDY/Algorithm

[백준] 1009 분산처리

sinawi95 2021. 2. 3. 23:54
728x90

www.acmicpc.net/problem/1009

 

1009번: 분산처리

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

www.acmicpc.net

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