ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค [lv2] ๋ฐฉ๊ธˆ ๊ทธ ๊ณก ํŒŒ์ด์ฌ

2021. 5. 22. 00:14ใ†๐Ÿ”ฑ Algorithm

์ ‘๊ทผ

๋„ˆ๋ฌด ๋ณต์žกํ•œ ๋ฌธ์ œ๋ผ ์ƒ๊ฐํ•˜๊ณ  ์ ‘๊ทผํ•˜๋‹ˆ ์ฝ”๋“œ๋„ ์‹ค์ œ๋กœ ๋”๋Ÿฌ์›Œ์กŒ๋‹ค.

#์ด ๋ถ™์€ ์Œ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€๊ฐ€ ์ค‘์š” ๊ด€๊ฑด์ธ๋ฐ, C#์„ ๊ผญ 'C#' ์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ ์›์†Œ๋กœ ๋ฌถ์„ ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ?

๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•˜๋Š” ๊ณผ์ •๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ๊ฒฐ๊ณผ๋ฅผ ํ—ค์น˜์ง€ ์•Š๋Š” ์„ ์—์„œ ๊ณผ์ •์€ ๋งˆ์Œ ๊ป ๋ณ€๊ฒฝ๋ผ๋„ ๊ดœ์ฐฎ๋‹ค. C#์„ ๊ทธ๋ƒฅ ์†Œ๋ฌธ์ž c๋กœ ๋ฐ”๊ฟ”๋ฒ„๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ํƒํ•ด๋„ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•˜๋Š”๋ฐ ๋ฌธ์ œ์—†๋‹ค.

 

 

์ค‘์š” ํฌ์ธํŠธ

1. ๋‹ต์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ์™€ ๋‹ต์ด ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

  • ์‚ฌ์ „์— Answer๋ณ€์ˆ˜์— ("(None)", None) set๋ฅผ ์ •์˜ํ•œ๋‹ค.

2. split() ๋ฉ”์„œ๋“œ๋ฅผ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

3. split() ๋ฉ”์„œ๋“œ๋กœ ๋ฆฌ์ŠคํŠธ๋งŒ ๋งŒ๋“ค์ง€๋ง๊ณ , ์•„๋ž˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ๊ฐ๊ฐ์˜ ์›์†Œ๋ฅผ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. 

4. ๋„ค์˜ค๊ฐ€ ๋“ค์€ ์Œ m์€ ๋ฐ˜๋“œ์‹œ melody_played ์˜ ์ผ๋ถ€๋ถ„์œผ๋กœ, if m in melody_played ์กฐ๊ฑด๋ฌธ์œผ๋กœ ํŒ๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

def change_hash(array):
    array = array.replace('C#', 'c')
    array = array.replace("D#", 'd')
    array = array.replace("F#", 'f')
    array = array.replace("G#", 'g')
    array = array.replace("A#", 'a')
    return array


def solution(m, musicinfos):

    m = change_hash(m)
    answer = ('(None)', None)

    for info in musicinfos:
        start, end, title, melody = info.split(',')
        start_h, start_m, end_h, end_m = map(int, start.split(':') + end.split(':'))
        time = 60*(end_h-start_h) + (end_m-start_m)
        melody = change_hash(melody)
        melody_played = (melody*time)[:time]
        if m in melody_played:
            if (answer[1] == None) or (time > answer[1]):
                answer = (title, time)
    return answer[0]