본문 바로가기
코딩테스트/백준 알고리즘

백준 알고리즘 | 2920 : 음계 (Python / 파이썬)

by 함께 공부해요 2020. 12. 17.


음계 성공출처다국어분류

시간 제한

메모리 제한

제출

정답

맞은 사람

정답 비율

1 초

128 MB

45930

23924

20926

54.001%

https://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


문제

다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다.

1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다.

연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오.

입력

첫째 줄에 8개 숫자가 주어진다. 이 숫자는 문제 설명에서 설명한 음이며, 1부터 8까지 숫자가 한 번씩 등장한다.

출력

첫째 줄에 ascending, descending, mixed 중 하나를 출력한다.

알고리즘 분류

구현


 

백준 알고리즘 # 2920번 : 음계

출처:  https://wikidocs.net/16041

scale = list(map(int, input().split()))

if scale == sorted(scale):
    print("ascending")
elif scale == sorted(scale, reverse = True):
    print("descending")
else:
    print("mixed")

풀이

처음에는 그냥 쉽게 scale 변수를 설정해서 정수를 리스트에 입력받고

if scale == [1, 2, 3, 4, 5, 6, 7, 8] 일 때 "ascending"을 출력하게끔

이런 꼼수로 문제를 풀까 했지만...🤣

(이것도 문제 자체에는 맞는 정답이었어요ㅋㅋㅋ 하지만 테스트 케이스가 많을수록 X)

sorted 함수를 이용해서 쉽게 해결해봤습니다.

ascending은 sorted의 reverse = False, 즉 기본값을 그대로 사용해서 오름차순(ASC)으로 출력하면 되고

key point

descending은 sorted에 reverse = True를 추가로 입력주어 내림차순(DESC)으로 출력하고

else로는 mixed가 출력되게끔하면 문제 풀이 끄---읏!👏🏻 (깔끔쓰 ㅎㅎ)

세한 코드가 궁금하신 분들은 아래 GitHub 코드를 참고해주세요🙏🏻

 

wook2124/Algorithm-Test

Practice algorithm. Contribute to wook2124/Algorithm-Test development by creating an account on GitHub.

github.com

최종 소스코드

댓글