Skip to content

Commit 5257f84

Browse files
committed
[Bronze II] Title: 분산처리, Time: 32 ms, Memory: 32412 KB -BaekjoonHub
1 parent 8916505 commit 5257f84

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# [Bronze II] 분산처리 - 1009
2+
3+
[문제 링크](https://www.acmicpc.net/problem/1009)
4+
5+
### 성능 요약
6+
7+
메모리: 32412 KB, 시간: 32 ms
8+
9+
### 분류
10+
11+
구현, 수학
12+
13+
### 제출 일자
14+
15+
2025년 1월 4일 20:08:06
16+
17+
### 문제 설명
18+
19+
<p>재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다.</p>
20+
21+
<p>1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... ,</p>
22+
23+
<p>10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ...</p>
24+
25+
<p>총 데이터의 개수는 항상 a<sup>b</sup>개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라.</p>
26+
27+
### 입력
28+
29+
<p>입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)</p>
30+
31+
### 출력
32+
33+
<p>각 테스트 케이스에 대해 마지막 데이터가 처리되는 컴퓨터의 번호를 출력한다.</p>
34+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import sys
2+
3+
t = int(sys.stdin.readline())
4+
5+
for _ in range(t):
6+
a, b = map(int, sys.stdin.readline().split())
7+
base = a%10
8+
9+
#시간 초과
10+
#print((a**b)%10)
11+
12+
# 일의 자리만 쓰니까 0~9를 승수 처리해서 일의 자리만 보면 그만임
13+
if base==0:#1의 자리가 0인 경우(10의 배수)
14+
print(10)
15+
elif base==1 or base==5 or base==6:#1,5,6인경우
16+
print(base)
17+
elif base==4 or base==9:#4,9 : 값을 그대로 가지거나, 제곱의 나머지
18+
if b%2==0:
19+
print((base**2)%10)
20+
else:
21+
print(base)
22+
else:#2,3,7,8
23+
if b%4==0:
24+
print(base**4%10)#4로 나눈 나머지를 바로 쓰면 오류 남
25+
else:
26+
print(base**(b%4)%10)

0 commit comments

Comments
 (0)