728x90
반응형
문제
문제
다장조는 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 하는 방법 두가지가 있다
참고
링크
728x90
반응형
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준 2675번 문제, 파이썬3] 문자열 반복 (0) | 2023.05.04 |
---|---|
[백준 11654번 문제, 파이썬3] 아스키 코드 (0) | 2023.05.04 |
[백준 11720번 문제, 파이썬3] 숫자의 합 (0) | 2023.05.04 |
[백준 1181번 문제, python] 단어 정렬 (0) | 2023.04.07 |
[백준 1152번 문제, C] 단어의 개수 (0) | 2023.04.02 |