코딩/공부

[Python] 백준 2920번 - 음계

취미니스트 2024. 3. 27. 19:28
728x90
반응형

문제

https://www.acmicpc.net/problem/2920

 

8개의 정수를 입력받아 리스트에 저장.

맨 앞 숫자가 1이면 ascending을 8이면 desending을 모두 아니면 mixed를 저장.

arr = list(map(int, input().split()))
answer = 'ascending' if arr[0] == 1 else 'descending' if arr[0] == 8 else 'mixed'

 

mixed가 아닌 경우.

- 맨 앞 숫자가 1이면 True, 아니면 False를 저장.

=> 증가 추세이면 True, 감소 추세이면 False.

- 반복문을 이용하여 1번째부터 7번째까지의 요소 가져오기.

-- 만일 True이면서 현재 요소와 이전 요소+1이 같지 않거나 False이면서 현재 요소와 이전요소-1이 같지 않으면 mixed로 변경 후 반복 종료.

결과 출력.

if answer != 'mixed':
    is_inc = True if arr[0] == 1 else False
    for i in range(1, 8):
        if (is_inc and arr[i-1]+1 != arr[i]) or (not is_inc and arr[i-1]-1 != arr[i]):
            answer = 'mixed'
            break

print(answer)

 

전체 코드.

arr = list(map(int, input().split()))
answer = 'ascending' if arr[0] == 1 else 'descending' if arr[0] == 8 else 'mixed'
if answer != 'mixed':
    is_inc = True if arr[0] == 1 else False
    for i in range(1, 8):
        if (is_inc and arr[i-1]+1 != arr[i]) or (not is_inc and arr[i-1]-1 != arr[i]):
            answer = 'mixed'
            break

print(answer)
728x90
반응형