Notice
Recent Posts
Recent Comments
Link
개발 공부~
[SWEA D3] [S/W 문제해결 기본] 7일차 - 암호생성기 .py 본문
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제
다음 주어진 조건에 따라 n개의 수를 처리하면 8자리의 암호를 생성할 수 있다.
- 8개의 숫자를 입력 받는다.
- 첫 번째 숫자를 1 감소한 뒤, 맨 뒤로 보낸다.
다음 첫 번째 수는 2 감소한 뒤 맨 뒤로, 그 다음 첫 번째 수는 3을 감소하고 맨 뒤로, 그 다음 수는 4, 그 다음 수는 5를 감소한다.
이와 같은 작업을 한 사이클이라 한다.
- 숫자가 감소할 때 0보다 작아지는 경우 0으로 유지되며, 프로그램은 종료된다. 이 때의 8자리의 숫자 값이 암호가 된다.
제약 사항
- 주어지는 각 수는 integer 범위를 넘지 않는다.
- 마지막 암호 배열은 모두 한 자리 수로 구성되어 있다.
입력
- 총 10개의 테스트 케이스가 주어진다.
- 각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호가 주어지고, 그 다음 줄에는 8개의 데이터가 주어진다.
출력
- #부호와 함께 테스트케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스의 답을 출력한다.
Solution
한 사이클마다 5번 반복된다. 한 사이클 안에서 수행한 결과가 0보다 작으면 종료하고 그때의 리스트 값을 다 출력해야한다.
맨 처음을 검사하기 때문에 pop(0)으로 구현하였고 결과가 0보다 작을 땐 맨 뒤에 append했다.
for test_case in range(1, 11):
N = int(input())
numbers = list(map(int, input().split()))
while True:
for i in range(1, 6):
n = numbers.pop(0)-i
if n <=0:
n =0
numbers.append(n)
break
else:
numbers.append(n)
if numbers[-1] ==0:
break
print(f'#{test_case}', end=" ")
print(*numbers)
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA D3] 3431. 준환이의 운동관리.py (0) | 2024.07.10 |
---|---|
[SWEA D3] 1860. 진기의 최고급 붕어빵 .py (1) | 2024.07.10 |
[SWEA D3] 1289. 원재의 메모리 복구하기.py (0) | 2024.07.08 |
[SWEA D3] 1228. [S/W 문제해결 기본] 8일차 - 암호문1 .py (0) | 2024.07.08 |
[SWEA D3] 1220. [S/W 문제해결 기본] 5일차 - Magnetic .py (0) | 2024.07.08 |