알고리즘 문제풀이
Swea D2_1225.암호생성기 Python Queue
아크몽
2024. 2. 15. 17:27
def password():
front = rear = -1
while True:
if arr[rear % N] > 0:
for i in range(N):
for j in range(1, 6):
rear += 1
a = arr.pop(0) - j
if a <= 0:
a = 0
arr.append(a)
return
arr.append(a)
else:
break
for i in range(10):
tc = int(input())
N = 8
arr = list(map(int,input().split()))
password()
print(f'#{tc}',*arr)
오늘의 뻘짓 : stack을 매우 길게 고정값으로 만들고, pop하는 것 없이 계속 더하기
for i in range(8):
tc = int(input())
N = 8
arr = list(map(int,input().split()))
stack = [1] * 100000
# print('stack',stack)
front = rear = -1
while True:
if stack[rear] <= 0:
print('stack에서 break')
break
# 9550 9556 9550 9553 9558 9551 9551 9551
for j in range(1,6):
rear += 1
stack[rear] = arr[rear % N] - j
arr[rear % N] = stack[rear]
if arr[rear % N] <= 0:
arr[rear%N] = 0
# print('arr에서 break')
break
# arr.append(arr.pop(0))
print(f'#{tc}', *arr)
# print(*arr)
# print(stack[rear])
# print('after',stack)
# print(arr)
# print()