728x90
출저 : SW Expert Academy 1225번 암호 생성기 문제.
문제 :
다음 주어진 조건에 따라 n개의 수를 처리하면 8자리의 암호를 생성할 수 있다.
- 8개의 숫자를 입력 받는다.
- 첫 번째 숫자를 1 감소한 뒤, 맨 뒤로 보낸다.
다음 첫 번째 수는 2 감소한 뒤 맨 뒤로, 그 다음 첫 번째 수는 3을 감소하고 맨 뒤로, 그 다음 수는 4, 그 다음 수는 5를 감소한다.
이와 같은 작업을 한 사이클이라 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# T = 1
# for tc in range(1,T+1):
# N = int(input())
# number = list(map(int,input().split()))
#
#
# temp = 0
#
# while number[7] >= 0:
# m = 1
# if number[0] >= m:
# temp = number[0] - m
# number[0] = number[1]
# number[1] = number[2]
# number[2] = number[3]
# number[3] = number[4]
# number[4] = number[5]
# number[5] = number[6]
# number[6] = number[7]
# number[7] = temp
# m += 1
# elif number[7] <= m:
# m = 1
# elif number[0] == 0:
# break
T = 10
for tc in range(1, T+1):
n = int(input()) # 필요없음
number = list(map(int, input().split())) #비밀번호가 될 숫자 받아오기
m = 1 #하나씩 마이너스 해줄 숫자
#isFalse = True
while True:
temp = number.pop(0) - m # temp 에 마지막숫자를 -m 한값을 넣어준다.
if temp < 0: #temp가 0 이하면 그냥 0으로 !
temp = 0
number.append(temp)
if temp <= 0: #마지막 숫자가 0이 되었다면 그암호가 되므로 반복문 종료
#isFalse = False
break
m += 1 # 점차 커지기
if m > 5: #사이클이 끝나면 다시 m = 1로 초기화
m = 1
#print(number)
print('#{} '.format(tc), end='')
print(*number)
|
cs |
728x90
'알고리즘 > SWAE' 카테고리의 다른 글
[백준] (단계별 - for 문) 2438, 2741, 2742, 10871, 11021, 11022, 15552 번문제.. (0) | 2021.03.06 |
---|---|
[Python] 5097. 회전, 5099. 피자 굽기, 5102. 노드의 거리, 5105 미로의 거리 (0) | 2021.03.05 |
[Python] (D2) 4871.그래프 경로 // DFS 응용 문제 (0) | 2021.03.02 |
[Python] - D2 - 2005. 파스칼의 삼각형 (0) | 2021.02.23 |
[Python - D1] 2063.중간값 찾기/ 2068.최대수 구하기/ 2070.큰 놈 작은 놈, 같은 놈/ 2071. 평균값 구하기 (0) | 2021.02.22 |