1225. 암호생성기 (SWEA)
※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.
출처:
나의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from collections import deque
for test_case in range(1, 11):
T = int(input())
data=deque(list(map(int,input().strip().split())))
cycle1=15 #1~5의 합
min_d=min(data)
iter_min=min_d//15-1
for i in range(8):
data[i]-=iter_min*15
done=False
while not done:
cnt=0
for i in range(1,6):
d=data.popleft()-i
if d<=0:
d=max(d,0)
data.append(d)
done=True
break
data.append(d)
print(f'#{test_case}',end=' ')
print(*data)
- data에서 가장 작은 수를 기준으로, 모든 수가 30이하가 되도록 한다.
- cycle이 8번 돌면, 모든 data에 -15가 되는 것과 같다. 또한 cycle이 처음 진행할 때와 동일한 순서로 진행되기 시작한다.
- 종료 조건은 data 중 0이하의 값이 되는 수가 있으면 종료된다.
This post is licensed under CC BY 4.0 by the author.