꾸준히 합시다

백준 파이썬 2902번: 음계 본문

코딩 테스트 문제 풀이

백준 파이썬 2902번: 음계

tturbo0824 2021. 3. 3. 00:51

www.acmicpc.net/problem/2920

 

2920번: 음계

다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8

www.acmicpc.net

문제 유형: 구현

 

# Solution 1

n = list(map(int, input().split(' ')))
asc = sorted(n)
des = sorted(n, reverse=True)

if n == asc:
    print("ascending")
elif n == des:
    print("descending")
else: print("mixed")

가장 먼저 생각난 풀이법. sorted 함수를 이용해 입력값을 각각 오름차순(asc), 내림차순(des)으로 정렬한 후 그 중 입력값과 일치하는 게 있다면 ascending 혹은 descending을 출력한다. 해당하는 것이 없다면 mixed 출력.

 

# Solution 2

# map을 이용해 각각의 원소를 int형으로 바꿔준다
n = list(map(int, input().split(' ')))

ascending = True
descending = True

# 두 번째 원소부터 앞의 원소와 비교 시작
for i in range(1, 8):
    if n[i] > n[i - 1]:
        descending = False
    elif n[i] < n[i - 1]:
        ascending = False
        
if ascending:
    print("ascending")
elif descending:
    print("descending")
else:
    print("mixed")

정석대로 풀기위해 조금은 노력한 답안.

Comments