본문 바로가기
TIL - 프로그래밍/Python 알고리즘

[SWEA] 1225. 암호생성기 - Python

by chaemj97 2022. 2. 25.
728x90

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14uWl6AF0CFAYD 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

< 📝 문제 >
다음 주어진 조건에 따라 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
반응형

댓글