음계 성공출처다국어분류
시간 제한 |
메모리 제한 |
제출 |
정답 |
맞은 사람 |
정답 비율 |
1 초 |
128 MB |
45930 |
23924 |
20926 |
54.001% |
https://www.acmicpc.net/problem/2920
문제
다장조는 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번 : 음계
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 코드를 참고해주세요🙏🏻
최종 소스코드
'코딩테스트 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 | 11651 : 좌표 정렬하기 2 (Python / 파이썬) (2) | 2020.12.20 |
---|---|
백준 알고리즘 | 2523 : 별 찍기 - 13 (Python / 파이썬) (0) | 2020.12.18 |
백준 알고리즘 | 1181 : 단어 정렬 (Python / 파이썬) (2) | 2020.12.16 |
백준 알고리즘 | 11650 : 좌표 정렬하기 (Python / 파이썬) (0) | 2020.12.15 |
백준 알고리즘 | 10039 : 평균 점수 (Python / 파이썬) (0) | 2020.12.14 |
댓글