728x90
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14uWl6AF0CFAYD
< 📝 문제 >
다음 주어진 조건에 따라 n개의 수를 처리하면 8자리의 암호를 생성할 수 있다.
- 8개의 숫자를 입력 받는다.
- 첫 번째 숫자를 1 감소한 뒤, 맨 뒤로 보낸다.
다음 첫 번째 수는 2 감소한 뒤 맨 뒤로, 그 다음 첫 번째 수는 3을 감소하고 맨 뒤로, 그 다음 수는 4, 그 다음 수는 5를
감소한다.
이와 같은 작업을 한 사이클이라 한다.
- 숫자가 감소할 때 0보다 작아지는 경우 0으로 유지되며, 프로그램은 종료된다. 이 때의 8자리의 숫자 값이 암호가 된다.
[1 사이클]
[암호 도출]
< ❓ 생각 >
< 💻 코드 >
# 10개의 테스트 케이스
for _ in range(10):
# 테스트 케이스 번호
tc = int(input())
# 8개의 데이터
arr=list(map(int,input().split()))
# 마지막이 0이 나올때까지 반복
while arr[-1] > 0:
# 사이클 1~5
for i in range(1,6):
# 뺀 값을 마지막에 추가하고 원래 값은 삭제
# 빼서 0보다 작으면 0으로 바꿔서 넣기
if arr[0]-i > 0:
arr.append(arr[0]-i)
arr.pop(0)
else:
arr.append(0)
arr.pop(0)
break
print(f'#{tc}',*arr)
728x90
반응형
'TIL - 프로그래밍 > Python 알고리즘' 카테고리의 다른 글
[SWEA] 4875. 미로 - Python (0) | 2022.02.25 |
---|---|
[SWEA] 4874. Forth - Python (0) | 2022.02.25 |
[SWEA] 3499. 퍼펙트 셔플 - Python (0) | 2022.02.24 |
[SWEA] 11315. 오목 판정 - Python (0) | 2022.02.24 |
[SWEA] 1220. Magnetic - Python (0) | 2022.02.24 |
댓글