백준
[백준] 2920번 : 음계 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
우당탕탕 개발자
2023. 7. 17. 11:47
728x90
반응형
2920번: 음계
다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8
www.acmicpc.net
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 음을 연주할 순서대로 입력받아 리스트로 저장한다. play = list(map(int, sys.stdin.readline().split()))
- 시작 음을 저장할 변수를 생성하고 입력받은 값에서 시작 값을 저장한다. start = play[0]
- 만약 시작 음이 1이라면 ascending인지 판별한다. if (start == 1)
- 1부터 8까지 하나씩 for i in range(1, 9)
- 입력받은 음과 일치하는지 확인하고 만약 일치하지 않다면 if (i != play[i - 1])
- ascending이 아니라 mixed이므로 mixed를 출력하고 print('mixed')
- 판별을 종료한다. break
- 만약 마지막 음까지 일치하면 ascending이다. if (i == 8): print('ascending')
- 만약 시작 음이 8이라면 descending인지 판별한다. elif (start == 8)
- 8부터 1까지 하나씩 for i in range(8, 0, -1)
- 입력받은 음과 일치하는지 확인하고 만약 일치하지 않다면 if (i != play[8 - i])
- descending이 아니라 mixed이므로 mixed를 출력하고 print('mixed')
- 판별을 종료한다. break
- 만약 마지막 음까지 일치하면 descending이다. if (i == 1): print('descending')
- 반면에 시작 음이 1과 8 둘 중에 하나가 아니라면 판별이 필요 없이 mixed이다. else: print('mixed')
반응형
3. 소스코드
import sys
play = list(map(int, sys.stdin.readline().split()))
start = play[0]
if (start == 1):
for i in range(1, 9):
if (i != play[i - 1]):
print('mixed')
break
if (i == 8):
print('ascending')
elif (start == 8):
for i in range(8, 0, -1):
if (i != play[8 - i]):
print('mixed')
break
if (i == 1):
print('descending')
else:
print('mixed')
728x90
반응형