반응형
1.문제 소개
- 수학/구현 문제 유형이다.
- https://www.acmicpc.net/problem/1009
2.코드
def solution():
n = int(input().strip())
for i in range(n):
a ,b = map(int,input().split(" "))
x = a
number_rules = []
number_rules += [x%10]
# 1의 자리 숫자의 규칙을 찾기 위한 루프
for i in range(10):
x = x * a
x = x % 10
number_rules += [x%10]
# 중복을 제거하고 순서를 보장하기 위한 리스트로 전처리
distinct_rules = []
for v in number_rules:
if v not in distinct_rules:
distinct_rules.append(v)
# 결과의 위치를 구하기
idx = b % len(distinct_rules) -1
# 0번의 경우 10번 컴퓨터를 의미하므로 정답 출력 보정
if distinct_rules[idx] == 0:
answer = 10
else:
answer = distinct_rules[idx]
print(answer)
if __name__ == '__main__':
solution()
3.코멘트
- 브론즈 문제임에도 단순하게 푼다면 시간 제한에 걸릴 수 있다.
- a**b 의 범위가 10억 대 범위라서, 반복문으로 구현했다가는 시간제한에 걸린다.
- 컴퓨터 번호 이하의 숫자를 pow 연산 범위 안에서 발생하는 규칙을 구한 다음, 정답 인덱스를 구해서 출력했다.
반응형
'Algorithm' 카테고리의 다른 글
Baekjoon 백준 알고리즘 - 숫자 정사각형 ( 1051 ) (2) | 2024.11.06 |
---|---|
Baekjoon 백준 알고리즘 - 한 줄로 서기 ( 2852 ) (0) | 2024.10.14 |
Baekjoon 백준 알고리즘 - 한 줄로 서기 ( 1138 ) (0) | 2024.09.02 |
Baekjoon 백준 알고리즘 - 풍선 터뜨리기 ( 2346 ) (0) | 2024.06.23 |
Baekjoon 백준 알고리즘 - DNA ( 1969 ) (1) | 2024.04.14 |