반응형

[ Contents ]
1. 문제 (링크 참조)
1009번: 분산처리
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)
www.acmicpc.net
2. 문제 풀이
10개의 컴퓨터에서 데이터를 분산처리합니다. a^b번째 데이터는 몇 번째 컴퓨터에서 처리하는지 구해야 합니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
[Algorithm] 단골 1번 문제, 구현 / 수학
[ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하
star7sss.tistory.com
3. 코드
import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
a, b = map(int, input().split()) #데이터의 개수는 a^b
print(a**b % 10)
단순히 나머지를 구하면 시간초과가 납니다....
그 대신 1의 자리를 거듭제곱했을 때, 나올 수 있는 패턴을 찾아야 합니다.
import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
a, b = map(int, input().split()) #데이터의 개수는 a^b
a1 = a % 10
if a1 == 0: # 패턴 1개
print(10)
elif a1 in [1, 5, 6]:
print(a1)
elif a1 in [4, 9]: # 패턴 2개
b1 = b % 2
if b1 == 0:
print(a1 * a1 % 10)
else:
print(a1)
else: # 패턴 4개
b1 = b % 4
if b1 == 0:
print(a1 ** 4 % 10)
else:
print(a1 ** b1 % 10)
코드는 위와 같습니다.
패턴을 너무 잘 소개해주신 분이 계셔서 링크로 남깁니다.
https://uni2237.tistory.com/58

반응형
'Algorithm' 카테고리의 다른 글
| [구현/수학] 백준 10214 Baseball - Python (0) | 2022.02.25 |
|---|---|
| [구현] 백준 13752 히스토그램 - Python (0) | 2022.02.25 |
| [구현/수학] 백준 2566 최댓값 - Python (1) | 2022.02.25 |
| [구현] 백준 24262 알고리즘 수업 - 알고리즘의 수행 시간 1 - Python (0) | 2022.02.25 |
| [구현/수학] 백준 11282 한글 - Python (0) | 2022.02.25 |
댓글