๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[Programmers] ๊ณผ์ œ ์ง„ํ–‰ํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿฆฅ ์ฝ”ํ…Œ/Programmers

[Programmers] ๊ณผ์ œ ์ง„ํ–‰ํ•˜๊ธฐ

์ง•์ง•์•ŒํŒŒ์นด 2023. 4. 14. 16:31
728x90
๋ฐ˜์‘ํ˜•
๊ณผ์ œ ์ง„ํ–‰ํ•˜๊ธฐ
๊ณผ์ œ๋ฅผ ๋ฐ›์€ ๋ฃจ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋Œ€๋กœ ๊ณผ์ œ๋ฅผ ํ•˜๋ ค๊ณ  ๊ณ„ํš์„ ์„ธ์›€
  ๊ณผ์ œ๋Š” ์‹œ์ž‘ํ•˜๊ธฐ๋กœ ํ•œ ์‹œ๊ฐ์ด ๋˜๋ฉด ์‹œ์ž‘
  ์ƒˆ๋กœ์šด ๊ณผ์ œ๋ฅผ ์‹œ์ž‘ํ•  ์‹œ๊ฐ์ด ๋˜์—ˆ์„ ๋•Œ, 
      ๊ธฐ์กด์— ์ง„ํ–‰ ์ค‘์ด๋˜ ๊ณผ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ง„ํ–‰ ์ค‘์ด๋˜ ๊ณผ์ œ๋ฅผ ๋ฉˆ์ถ”๊ณ  ์ƒˆ๋กœ์šด ๊ณผ์ œ๋ฅผ ์‹œ์ž‘
  ์ง„ํ–‰์ค‘์ด๋˜ ๊ณผ์ œ๋ฅผ ๋๋ƒˆ์„ ๋•Œ, ์ž ์‹œ ๋ฉˆ์ถ˜ ๊ณผ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด, ๋ฉˆ์ถฐ๋‘” ๊ณผ์ œ๋ฅผ ์ด์–ด์„œ ์ง„ํ–‰
      ๋งŒ์•ฝ, ๊ณผ์ œ๋ฅผ ๋๋‚ธ ์‹œ๊ฐ์— ์ƒˆ๋กœ ์‹œ์ž‘ํ•ด์•ผ ๋˜๋Š” ๊ณผ์ œ์™€ ์ž ์‹œ ๋ฉˆ์ถฐ๋‘” ๊ณผ์ œ๊ฐ€ ๋ชจ๋‘ ์žˆ๋‹ค๋ฉด, 
      ์ƒˆ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋Š” ๊ณผ์ œ๋ถ€ํ„ฐ ์ง„ํ–‰
  ๋ฉˆ์ถฐ๋‘” ๊ณผ์ œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ, ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋ฉˆ์ถ˜ ๊ณผ์ œ๋ถ€ํ„ฐ ์‹œ์ž‘
๊ณผ์ œ ๊ณ„ํš์„ ๋‹ด์€ ์ด์ฐจ์› ๋ฌธ์ž์—ด ๋ฐฐ์—ด plans๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, 
๊ณผ์ œ๋ฅผ ๋๋‚ธ ์ˆœ์„œ๋Œ€๋กœ ์ด๋ฆ„์„ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋Š” solution ํ•จ์ˆ˜
def solution(plans):
    # name : ๊ณผ์ œ์˜ ์ด๋ฆ„, start : ๊ณผ์ œ์˜ ์‹œ์ž‘ ์‹œ๊ฐ, playtime : ๊ณผ์ œ๋ฅผ ๋งˆ์น˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ (๋ถ„)
    # "00:00" ~ "23:59"
    finish = []
    yet = []
    answer = []
    
    # ๊ณผ์ œ ์‹œ๊ฐ„ ์ด๋ฅธ ์ˆœ์œผ๋กœ ์ •๋ ฌ
    plans.sort(key = lambda x : x[1])
    for i in range(len(plans)) :
        a, b = plans[i][1].split(":")
        a = int(a)
        b = int(b)
        c = int(plans[i][2])
        next = b + c
        
        if next >= 60 :
            temp = next // 60
            a += temp
            b = next - 60 * temp
            if a >= 24 :
                a = a - 24
        else :
            b = b + c
        
        if a < 10 :
            a = str(0) + str(a)
        elif b < 10 :
            b = str(0) + str(b)

        fis = str(a) + ":" + str(b)
        finish.append(fis)

    for i in range(1, len(plans)) :        
        if plans[i][1] < finish[i-1] :           
            yet.append(plans[i-1][0])
        else :
            answer.append(plans[i-1][0])      
    answer.append(plans[-1][0])
    yet.reverse()
    
    answer.extend(yet)
    return answer

 

์ฒ˜์Œ ํ…Œ์ŠคํŠธ 3๊ฐœ๋Š” ๋งž๋Š”๋ฐ

์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ๋Š” ๊ฑฐ์˜ ํ‹€๋ฆผ.....

์ด์œ ๊ฐ€ ์•Œ๊ณ  ์‹ถ๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•
Comments