ALGORITHM/PYTHON

백준 BAEKJOON 4732번 조옮김  [PYTHON/파이썬]

칼코
반응형

 

 

 

 

 

백준 BAEKJOON 4732번 조옮김  [PYTHON/파이썬]


<문제 출처> (BRONZE Ⅰ)

https://www.acmicpc.net/problem/4732

 

4732번: 조옮김

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 어떤 곡의 음의 순서가 주어진다. 음과 음은 하나 또는 그 이상의 공백으로 구분되어 있다. 다음 줄에는 조옮

www.acmicpc.net

 

 

 

 

 

<풀이>

12음으로 이루어진 음계를

샤프플랫을 구분하여 번호를 지정한 딕셔너리와

문제에서 주어진 음계 리스트를 2개 만든 뒤 문제를 풀었다.

 

 

 

 

 

 

<코드>

scales = {
    "Ab": 11,
    "A": 0,
    "A#": 1,
    "Bb": 1,
    "B": 2,
    "B#": 3,
    "Cb": 2,
    "C": 3,
    "C#": 4,
    "Db": 4,
    "D": 5,
    "D#": 6,
    "Eb": 6,
    "E": 7,
    "E#": 8,
    "Fb": 7,
    "F": 8,
    "F#": 9,
    "Gb": 9,
    "G": 10,
    "G#": 11,
}
scales_index = ["A", "A#", "B", "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#"]

while True:
    order = list(input().split())
    if order[0] == "***":
        break

    transposition = int(input())
    result = []
    for i in order:
        m = scales[i] + transposition
        result.append(scales_index[m % 12])

    print(" ".join(result))

 

 

 

 

 

 

 

반응형