๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] [3์ฐจ] ๋ฐฉ๊ธˆ๊ทธ๊ณก - 2018 KAKAO BLIND RECRUITMENT

๋ฟŒ์•ผ._. 2021. 12. 2. 17:47

 

<[3์ฐจ] ๋ฐฉ๊ธˆ ๊ทธ ๊ณก>

๋ฌธ์ œ(์ถœ์ฒ˜: https://school.programmers.co.kr/learn/courses/30/lessons/17683)

 

 

๋ฌธ์ œ ํ’€์ด

   - my solution

def solution(m, musicinfos):
    answer = ''
    
    arr=[]
    for i in musicinfos:
        temp=i.split(',') 
        start=temp[0].split(':') # ์Œ์•… ์‹œ์ž‘ ์‹œ๊ฐ„
        end=temp[1].split(':') # ์Œ์•… ๋๋‚œ ์‹œ๊ฐ
        min=(int(end[0])-int(start[0]))*60 + int(end[1])-int(start[1]) # ์Œ์•… ์žฌ์ƒ ์‹œ๊ฐ„
        
        result=''
        for j in range(len(temp[3])): # ,์™€ ๊ณต๋ฐฑ์œผ๋กœ ์•…๋ณด ๊ตฌ๋ถ„
            if j!=len(temp[3])-1 and temp[3][j+1]!='#':
                result+=temp[3][j]+', '
            else:
                if j==len(temp[3])-1:
                    result+=temp[3][j]+','
                else:
                    result+=temp[3][j]
        k=result.split(' ')
        

        music=(min//len(k))*k + k[:(min%len(k))] # ์žฌ์ƒ ์‹œ๊ฐ„ ๋งŒํผ ์•…๋ณด ๊ทธ๋ฆฌ๊ธฐ
        music=' '.join(music)
                
        arr.append([min,temp[2],music]) # list: ์žฌ์ƒ ์‹œ๊ฐ„, ์Œ์•… ์ œ๋ชฉ, ์•…๋ณด 

    
    result=''
    for i in range(len(m)): # ,์™€ ๊ณต๋ฐฑ์œผ๋กœ ์ž์‹ ์ด ๊ธฐ์–ตํ•˜๋Š” ๋ฉœ๋กœ๋”” ๊ตฌ๋ถ„
        if i!=len(m)-1 and m[i+1]!='#':
            result+=m[i]+', '
        else:
            result+=m[i]
    result+=','
    
    
    mmax=-1
    for i in arr: # ์กฐ๊ฑด๊ณผ ์ผ์น˜ํ•˜๋Š” ์Œ์•… ์ œ๋ชฉ ์ฐพ๊ธฐ
        if result in i[2]:
            if mmax<i[0]:
                mmax=i[0]
                answer=i[1]
    
    if answer=='': # ์กฐ๊ฑด์ด ์ผ์น˜ํ•˜๋Š” ์Œ์•…์ด ์—†๋Š” ๊ฒฝ์šฐ
        answer='(None)'

    return answer

 

 

1) ๊ณก์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐฐ์—ด ํƒ์ƒ‰ : (์žฌ์ƒ ์‹œ๊ฐ„ = ์Œ์•… ๋๋‚œ ์‹œ๊ฐ„ - ์Œ์•… ์‹œ์ž‘ ์‹œ๊ฐ„), (์žฌ์ƒ ์‹œ๊ฐ„๋งŒํผ ์•…๋ณด ๊ตฌํ•˜๊ธฐ)

- list์— (์žฌ์ƒ ์‹œ๊ฐ„, ์Œ์•… ์ œ๋ชฉ, ์žฌ์ƒ ์‹œ๊ฐ„๋งŒํผ์˜ ์•…๋ณด) ์ถ”๊ฐ€

2) ์ž์‹ ์ด ๊ธฐ์–ตํ•˜๋Š” ๋ฉœ๋กœ๋”” ', '์™€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ€

3) ์กฐ๊ฑด๊ณผ ์ผ์น˜ํ•˜๋Š” ์Œ์•… ์ œ๋ชฉ ์ฐพ๊ธฐ : ์กฐ๊ฑด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ์žฌ์ƒ์‹œ๊ฐ„์ด ๊ธด ์Œ์•…, ๋จผ์ € ์ž…๋ ฅ๋œ ์Œ์•… ์ˆœ

4) ์กฐ๊ฑด๊ณผ ์ผ์น˜ํ•˜๋Š” ์Œ์•…์ด ์—†์œผ๋ฉด '(None)' ์ถœ๋ ฅ


์ƒ๊ฐ๐Ÿค”

 

์ด ๋ฌธ์ œ์—์„œ ์กฐ๊ธˆ ์ƒ๊ฐํ•ด์•ผ ํ–ˆ๋˜ ๋ถ€๋ถ„์€ ์•…๋ณด์—์„œ #์ด ๋ถ™์€ ๊ฒฝ์šฐ์˜€๋‹ค.

์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž˜ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ์ œ์ผ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ธ ', '์™€ ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•ด์„œ ๊ตฌ๋ถ„ํ•˜์ž๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

์ด์ œ ์™€์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๊ณต๋ฐฑ๋งŒ์œผ๋กœ๋„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์—ˆ์„ ํ…๋ฐ, ์™œ ', '๊นŒ์ง€ ํ–ˆ๋Š”๊ฐ€...

 

๋ฌธ์ œ๋ฅผ ํ’€ ๋‹น์‹œ ', '๋ฅผ ๋„ฃ๊ณ  in์œผ๋กœ ์กฐ๊ฑด๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ๊ตฌ๋ถ„ํ•˜๋‹ˆ ๋‹น์—ฐํžˆ #์„ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•ด ์ œ๋Œ€๋กœ ๋œ ๊ฐ’์ด ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค.

๊ณต๋ฐฑ์„ ๋„ฃ๋Š”๋‹ค๋ฉด 'C '์™€ 'C# '์ด ๋‹ค๋ฅด๊ฒŒ ๋ฐ›์•„๋“ค์—ฌ์ง€์ง€ ์•Š๊ฒ ๋Š”๊ฐ€ ํ•ด์„œ ์›๋ž˜ ์ฝ”๋“œ์— ๊ณต๋ฐฑ์„ ์ถ”๊ฐ€๋กœ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.

 

์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋‚˜์ง€ ์•Š์„๊นŒ ์‚ด์ง ๋ฌด์„ญ๊ธฐ๋„ ํ–ˆ์ง€๋งŒ ๋‹คํ–‰ํžˆ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.


์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges