문제

문제
다장조는 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 중 하나를 출력한다.
코드
line = list(map(int, input().split(' ')))
ascending_flag = False
descending_flag = False
for i in range(1, len(line)):
if line[i-1]+1 == line[i]:
ascending_flag = True
elif line[i-1]-1 == line[i]:
descending_flag = True
else:
ascending_flag = False
descending_flag = False
break
if ascending_flag:
print('ascending')
elif descending_flag:
print('descending')
else:
print('mixed')
또는
line = list(map(int, input().split()))
if line == sorted(line):
print('ascending')
elif line == sorted(line, reverse=True):
print('descending')
else:
print('mixed')
해결
+1 또는 -1 해서 맞으면 ascending, descending 으로 출력하는데 아니면 mixed 하고 for문 탈출 하는 방법과
오름차순, 내림차순 정렬을하고 그것과 같으면 해당 출력 아니면 mxied 하는 방법 두가지가 있다
참고
링크
'정리 전 게시글 > 공부 관련' 카테고리의 다른 글
| [백준 2675번 문제, 파이썬3] 문자열 반복 (0) | 2023.05.04 |
|---|---|
| [백준 11654번 문제, 파이썬3] 아스키 코드 (0) | 2023.05.04 |
| [백준 11720번 문제, 파이썬3] 숫자의 합 (0) | 2023.05.04 |
| 비주얼베이직 계산기 만들기 코드 (후위 표기법) (0) | 2023.05.03 |
| [인공지능 학습 노트] 파이썬 UCS 구현 상태 공간 그래프에 대한 균일 비용 탐색 알고리즘 (0) | 2023.05.01 |