Coding test

방금 그 곡

본명은이점례 2021. 10. 21. 17:42
728x90

 

문제 해설

부분 문자열 비교를 묻는 문제입니다. 하지만 멜로디의 각 음을 나타내는 글자가 한 글자일 수도 있고, 두 글자일 수도 있습니다. “ABC”라는 멜로디는 “ABCD”라는 악보에는 들어있지만, “ABC#”라는 악보에는 들어있지 않습니다. C#이 하나의 음을 이루고 있기 때문이죠.

문자열 비교에서 이런 문제를 처리해야 할 일이 있습니다. 1차 코딩 테스트에서 설명했던 토큰화Tokenizing를 통해 “ABC#”을 [“A”, “B”, “C#”] 식의 배열로 변환한 후에 비교를 수행할 수도 있고요. 아니면 두 글자로 된 “C#”, “D#”, “F#” 등을 악보에서 사용되지 않는 문자인 “c”, “d”, “e” 등으로 치환Substitution한 후에 문자열 비교 함수를 이용할 수도 있습니다.

728x90