알고리즘/백준 - 파이썬
백준) 1009번 분산처리 문제 (파이썬)
AI Sonny
2022. 6. 27. 13:53
728x90
문제) 재용이는 최신 컴퓨터 10대를 가지고 있다.
어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고,
10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다.
1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... ,
10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ...
총 데이터의 개수는 항상 ab개의 형태로 주어진다.
재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다.
이를 수행해주는 프로그램을 작성하라.
X = int(input())
for _ in range(X):
a, b = map(int,input().split())
c = pow(a,b,10) # => a**b%c (반복문보다 한참 더 빨리 구해줍니다)
# ** => 제곱, % 나머지
if c:
print(c)
else:
print(10)
이번 문제는 처음에 a의 b제곱을 나타내기 위해 a**b%10을 하였다.
문제를 출력하였을 땐 이상없이 잘나왔으나 제출을 해보니 시간초과가 나타났다.
이 후 구글링을 해보니 pow 함수에 대해 알게 되었고, 이것을 사용하였다.
pow는 제곱을 나타내는 함수로 a의 b승을 나타낸다. 이 후 10은 나머지를 구하는 것이다.
그래서 마지막 if문에서 c이면 c를 출력하고, c가 아닌 (1~9를 제외한) 경우 10을 출력한다.
이해가 안되시거나 틀린 정보는 댓글로 알려주시면 감사하겠습니다!
728x90