๐Ÿ’ซ ETC/Problem Solving

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ์…”ํ‹€๋ฒ„์Šค

ming412 2023. 9. 23. 13:32

https://school.programmers.co.kr/learn/courses/30/lessons/17678

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

โœ๏ธ ๋ฌธ์ œ ์š”์•ฝ

๋‹ค๋ฅธ ํฌ๋ฃจ๊ฐ€ ๋ฒ„์Šค ์ •๋ฅ˜์žฅ์— ๋„์ฐฉํ•˜๋Š” ์‹œ๊ฐ„์„ ์•Œ๊ณ  ์žˆ์„ ๋•Œ,

๊ฒŒ์œผ๋ฅธ ์ฝ˜์ด ๋ฒ„์Šค์— ํƒˆ ์ˆ˜ ์žˆ์œผ๋ฉด์„œ ๋ฒ„์Šค ์ •๋ฅ˜์žฅ์— ๊ฐ€์žฅ ๋Šฆ๊ฒŒ ๋„์ฐฉํ•˜๋ ค๋ฉด ๋ช‡ ์‹œ(HH:MM)์— ๋„์ฐฉํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜๋ผ.

 

- ๋ฒ„์Šค๋Š” 09:00 ๋ถ€ํ„ฐ ์ด n ํšŒ t ๋ถ„ ๊ฐ„๊ฒฉ์œผ๋กœ ์ •๋ฅ˜์žฅ์— ๋„์ฐฉํ•˜๋ฉฐ, ํ•œ ๋ฒ„์Šค์—๋Š” ์ตœ๋Œ€ m ๋ช…์˜ ํฌ๋ฃจ๊ฐ€ ํƒˆ ์ˆ˜ ์žˆ๋‹ค.

- ๋ฒ„์Šค์— ์ž๋ฆฌ๋งŒ ์žˆ๋‹ค๋ฉด, ๋ฒ„์Šค์™€ ๋™์‹œ์— ๋„์ฐฉํ•œ ํฌ๋ฃจ๊นŒ์ง€ ํƒˆ ์ˆ˜ ์žˆ๋‹ค.

- ์ฝ˜์€ ๊ฐ™์€ ์‹œ๊ฐ์— ๋„์ฐฉํ•œ ํฌ๋ฃจ ์ค‘ ๋Œ€๊ธฐ์—ด์—์„œ ์ œ์ผ ๋’ค์— ์„ ๋‹ค.

 

๐Ÿ’ช ๋‚˜์˜ ํ’€์ด

์ „์ฒด ์ฝ”๋“œ

# n: ์…”ํ‹€์ˆ˜ (๋Œ€)
# t: ์šดํ–‰ ๊ฐ„๊ฒฉ (๋ถ„)
# m: ์ตœ๋Œ€ ์ธ์› (๋ช…)

def hourToMin(str):
    hh, mm = map(int, str.split(':'))
    return hh * 60 + mm

def minToHour(min):
    return '{0:02d}'.format(min//60) + ':' + '{0:02d}'.format(min%60)

def solution(n, t, m, timetable):
    crew_arrival = sorted([hourToMin(x) for x in timetable]) # ํฌ๋ฃจ ๋„์ฐฉ ์‹œ๊ฐ(๋ถ„)
    bus_arrival = [540 + i*t for i in range(n)] # ๋ฒ„์Šค ๋„์ฐฉ ์‹œ๊ฐ(๋ถ„)
    
    idx = 0 # ์ด์ œ ๋ฒ„์Šค์— ํƒˆ ์ฐจ๋ก€์ธ ํฌ๋ฃจ ์ธ๋ฑ์Šค (์•„์ง ์•ˆ ํƒ)
    cnt = 0 # ๊ฐ ๋ฒ„์Šค์— ํƒ‘์Šนํ•œ ์ธ์›์ˆ˜
    for x in bus_arrival:
        cnt = 0
        while idx < len(crew_arrival) and crew_arrival[idx] <= x and cnt < m: # ํฌ๋ฃจ ํƒ‘์Šน ์กฐ๊ฑด
            idx += 1
            cnt += 1
    
    if cnt < m: # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ์ž๋ฆฌ ๋‚จ์•˜์œผ๋ฉด
    	return minToHour(bus_arrival[-1]) # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค ๋„์ฐฉ ์‹œ๊ฐ„์— ๋งž์ถฐ ๋„์ฐฉํ•˜๋ฉด ๋œ๋‹ค
    else: # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ์ž๋ฆฌ ์•ˆ๋‚จ์•˜์œผ๋ฉด
        return minToHour(crew_arrival[idx-1]-1) # ๋งˆ์ง€๋ง‰์œผ๋กœ ํƒ‘์Šนํ•œ ํฌ๋ฃจ๋ณด๋‹ค 1๋ถ„ ์ผ์ฐ ๋„์ฐฉํ•ด์•ผ ํ•œ๋‹ค

 

์„ธ๋ถ€ ์„ค๋ช…

ํŽธ์˜๋ฅผ ์œ„ํ•ด HH:MM์˜ ๋ฌธ์ž์—ด์„ ๋ถ„์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , ๋ฐ˜๋Œ€๋กœ ๋ถ„์„ HH:MM ํ˜•ํƒœ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” hourToMin๊ณผ minToHour ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ œ์— ๋‚˜์˜ค๋Š” ๋ชจ๋“  HH:MM ํ˜•ํƒœ์˜ ๋ฌธ์ž์—ด์„ "๋ถ„"์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ƒ๊ฐํ•˜์ž. 

 

๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ timetable์„ ์ด์šฉํ•ด ํฌ๋ฃจ์˜ ๋„์ฐฉ ์‹œ๊ฐ์„ ๊ณ„์‚ฐํ•˜๊ณ  ์ด๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  n๊ณผ t๋ฅผ ์ด์šฉํ•ด ๋ฒ„์Šค์˜ ๋„์ฐฉ ์‹œ๊ฐ์„ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•ด๋‘”๋‹ค.

 

์ด ํ’€์ด์—์„œ ํ•ต์‹ฌ ๋กœ์ง์€, ๊ฐ ๋ฒ„์Šค๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ idx์™€ cnt ๋ณ€์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

- idx: ๋ฒ„์Šค์— ํƒˆ ์ฐจ๋ก€์ธ ํฌ๋ฃจ ์ธ๋ฑ์Šค (์•„์ง์€ ์•ˆ ํƒ„ ํฌ๋ฃจ)

- cnt: ๊ฐ ๋ฒ„์Šค์— ํƒ‘์Šนํ•œ ์ธ์› ์ˆ˜

idx = 0 # ์ด์ œ ๋ฒ„์Šค์— ํƒˆ ์ฐจ๋ก€์ธ ํฌ๋ฃจ ์ธ๋ฑ์Šค (์•„์ง ์•ˆ ํƒ)
cnt = 0 # ๊ฐ ๋ฒ„์Šค์— ํƒ‘์Šนํ•œ ์ธ์›์ˆ˜
for x in bus_arrival:
    cnt = 0
    while idx < len(crew_arrival) and crew_arrival[idx] <= x and cnt < m: # ํฌ๋ฃจ ํƒ‘์Šน ์กฐ๊ฑด
        idx += 1
        cnt += 1

์ƒํ™ฉ์ ์œผ๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด, ๊ฐ ๋ฒ„์Šค๊ฐ€ ๋„์ฐฉํ–ˆ์„ ๋•Œ๋งˆ๋‹ค ํฌ๋ฃจ ํƒ‘์Šน ์กฐ๊ฑด์„ ํ™•์ธํ•˜๊ณ  ํฌ๋ฃจ๋ฅผ ํƒœ์šฐ๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋•Œ ๋ช‡ ๋ฒˆ์งธ ํฌ๋ฃจ๊นŒ์ง€ ํƒ‘์Šนํ–ˆ๋Š”์ง€, ํ˜„์žฌ ๋ฒ„์Šค์—๋Š” ๋ช‡ ๋ช…์˜ ํฌ๋ฃจ๊ฐ€ ํƒ‘์Šนํ–ˆ๋Š”์ง€๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค.

 

ํฌ๋ฃจ ํƒ‘์Šน ์กฐ๊ฑด์€ ์œ„ ์ฝ”๋“œ์˜ while ๋ฌธ์— ์ ํžŒ ์ˆœ์„œ๋Œ€๋กœ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

1. ํƒ‘์Šนํ•  ํฌ๋ฃจ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ

2. ํฌ๋ฃจ๊ฐ€ ๋ฒ„์Šค๋ณด๋‹ค ๋จผ์ € ๋„์ฐฉํ–ˆ๋Š”์ง€ (ํ˜น์€ ๋™์‹œ์— ๋„์ฐฉํ•œ ๊ฒƒ๊นŒ์ง€ ok) ํ™•์ธ

3. ๋ฒ„์Šค์— ํฌ๋ฃจ๊ฐ€ ํƒ‘์Šนํ•  ๊ณต๊ฐ„์ด ๋‚จ์•„์žˆ๋Š”์ง€ ํ™•์ธ

 

์ด๋ ‡๊ฒŒ ๋ฒ„์Šค๋งˆ๋‹ค `idx`์™€ `cnt`๋ฅผ ๊ฐฑ์‹ ํ•˜๋ฉด, for๋ฌธ์„ ํ†ต๊ณผํ–ˆ์„ ๋•Œ `idx`์™€ `cnt`์—๋Š” ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋‚จ๊ฒŒ ๋œ๋‹ค.

`idx`๋Š” ๋งˆ์ง€๋ง‰์— ํƒ„ ํฌ๋ฃจ์˜ "๋‹ค์Œ" ํฌ๋ฃจ ์ •๋ณด๋กœ ๊ฐฑ์‹ ๋œ๋‹ค. ์ฆ‰, ๋งˆ์ง€๋ง‰์— ํƒ„ ํฌ๋ฃจ๋Š” `idx-1` ๋ฒˆ์งธ ํฌ๋ฃจ์ด๋‹ค.

`cnt`์—๋Š” ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ๋ช‡ ๋ช…์˜ ํฌ๋ฃจ๊ฐ€ ํƒ”๋Š”์ง€ ์ •๋ณด๊ฐ€ ๋‚จ๋Š”๋‹ค.

 

๊ทธ๋Ÿผ ์ด์ œ ๋จธ๋ฆฌ๋ฅผ ๊ตด๋ ค์„œ ์ฝ˜์ด ๋ฌด์‚ฌํžˆ ์…”ํ‹€์„ ํƒ€๊ณ  ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ œ์ผ ๋Šฆ์€ ๋„์ฐฉ ์‹œ๊ฐ„์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๋ฉด ๋œ๋‹ค!

๊ฒฐ๋ก ์ ์œผ๋กœ (๋ฒ„์Šค๋ฅผ ํƒˆ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„ ์ค‘) ๋ฒ„์Šค ์ •๋ฅ˜์žฅ์— ์ œ์ผ "๋Šฆ๊ฒŒ" ๋„์ฐฉํ•˜๋ ค๋ฉด, "๋งˆ์ง€๋ง‰" ๋ฒ„์Šค๋ฅผ ํƒ€๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ด์•ผํ•œ๋‹ค.

 

๋งˆ์ง€๋ง‰ ๋ฒ„์Šค๋ฅผ ํƒ€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐ€์ง€ ์ผ€์ด์Šค๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

1) ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ์ž๋ฆฌ๊ฐ€ ๋‚จ์•˜๋‹ค๋ฉด -> ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค ๋„์ฐฉ ์‹œ๊ฐ„๊ณผ ๋™์ผํ•˜๊ฒŒ ๋„์ฐฉํ•˜๋Š” ๊ฒƒ์ด ์ •๋ฅ˜์žฅ์— ์ตœ๋Œ€ํ•œ ๋Šฆ๊ฒŒ ๋„์ฐฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

2) ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ์ž๋ฆฌ๊ฐ€ ๋‚จ์•„์žˆ์ง€ ์•Š๋‹ค๋ฉด -> ๋งˆ์ง€๋ง‰์œผ๋กœ ํƒ‘์Šนํ•œ ํฌ๋ฃจ๋ณด๋‹ค 1๋ถ„ ๋จผ์ € ๋„์ฐฉํ•ด์•ผ ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค๋ฅผ ํƒˆ ์ˆ˜ ์žˆ๋‹ค.

if cnt < m: # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ์ž๋ฆฌ ๋‚จ์•˜์œผ๋ฉด
    return minToHour(bus_arrival[-1]) # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค ๋„์ฐฉ ์‹œ๊ฐ„์— ๋งž์ถฐ ๋„์ฐฉํ•˜๋ฉด ๋œ๋‹ค
else: # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ์ž๋ฆฌ ์•ˆ๋‚จ์•˜์œผ๋ฉด
    return minToHour(crew_arrival[idx-1]-1) # ๋งˆ์ง€๋ง‰์œผ๋กœ ํƒ‘์Šนํ•œ ํฌ๋ฃจ๋ณด๋‹ค 1๋ถ„ ์ผ์ฐ ๋„์ฐฉํ•ด์•ผ ํ•œ๋‹ค

 

๐Ÿค” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ํƒ๊ตฌํ•ด๋ณด๊ธฐ

์ „์ฒด ์ฝ”๋“œ

# n: ์…”ํ‹€์ˆ˜ (๋Œ€)
# t: ์šดํ–‰ ๊ฐ„๊ฒฉ (๋ถ„)
# m: ์ตœ๋Œ€ ์ธ์› (๋ช…)

def minToHour(min):
    return '{0:02d}'.format(min//60) + ':' + '{0:02d}'.format(min%60)

def solution(n, t, m, timetable):
    answer = ''
    crew_arrival = [int(x[:2])*60 + int(x[3:]) for x in timetable] # ํฌ๋ฃจ ๋„์ฐฉ ์‹œ๊ฐ„(๋ถ„)
 
    crew_arrival.sort()
 
    last_time = 540 + (n - 1) * t
    if len(crew_arrival) < m: # ํฌ๋ฃจ ์ˆ˜๊ฐ€ ๋ฒ„์Šค ์ •์›๋ณด๋‹ค ์ ๋‹ค๋ฉด ์ถฉ๋ถ„ํžˆ ๋งŽ์€ ๋ฒ„์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ
        return minToHour(last_time)
        
    for i in range(n):
        # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค๋ผ๋ฉด
        if i == n - 1:
            if crew_arrival[0] > last_time: # ํƒˆ ์ˆœ์„œ์˜ ํฌ๋ฃจ๊ฐ€ ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค๋ณด๋‹ค ๋Šฆ๊ฒŒ ๋„์ฐฉํ•˜๋‹ˆ๊นŒ ์–ด์ฐจํ”ผ ๋ชป ํƒ
                return minToHour(last_time) # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค ๋„์ฐฉ ์‹œ๊ฐ„๊นŒ์ง€ ๋„์ฐฉํ•˜๋ฉด ๋œ๋‹ค
            return minToHour(crew_arrival[m-1]-1) # ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฒ„์Šค์— ํƒ‘์Šนํ•˜๋Š” ํฌ๋ฃจ๋ณด๋‹ค 1๋ถ„ ๋จผ์ €
        # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด
        for j in range(m-1, -1, -1): # j๋Š” m-1๋ถ€ํ„ฐ 0๊นŒ์ง€
            bus_arrival = 540 + i * t # ๋ฒ„์Šค ๋„์ฐฉ ์‹œ๊ฐ„
            if crew_arrival[j] <= bus_arrival: # ํฌ๋ฃจ๊ฐ€ ๋ฒ„์Šค๋ณด๋‹ค ์ผ์ฐ ๋„์ฐฉํ–ˆ๋‹ค๋ฉด
                del crew_arrival[j] # ๋ฆฌ์ŠคํŠธ์—์„œ ํฌ๋ฃจ ์ œ๊ฑฐ (๋Œ€๊ธฐ ๋ฆฌ์ŠคํŠธ์—์„œ ํฌ๋ฃจ ์ œ๊ฑฐ)

 

์„ธ๋ถ€ ์„ค๋ช…

๋‚˜์˜ ํ’€์ด์™€ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์‚ดํŽด๋ณด์ž.

 

์šฐ์„  ํฌ๋ฃจ์˜ ์ˆ˜(`len(crew_arrival`)๊ฐ€ ๋ฒ„์Šค์˜ ์ •์›(`m`)๋ณด๋‹ค ์ž‘์€์ง€ ํ™•์ธํ•œ๋‹ค.

๋งŒ์•ฝ ์ž‘๋‹ค๋ฉด ์ด๋ฏธ ์ถฉ๋ถ„ํžˆ ๋งŽ์€ ๋ฒ„์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ์ƒํ™ฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฝ˜์€ ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค ์‹œ๊ฐ„(`last_time`)๊นŒ์ง€๋งŒ ๋„์ฐฉํ•˜๋ฉด ๋œ๋‹ค.

last_time = 540 + (n - 1) * t # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์˜ ๋„์ฐฉ ์‹œ๊ฐ„
if len(crew_arrival) < m: # ํฌ๋ฃจ ์ˆ˜๊ฐ€ ๋ฒ„์Šค ์ •์›๋ณด๋‹ค ์ ๋‹ค๋ฉด ์ถฉ๋ถ„ํžˆ ๋งŽ์€ ๋ฒ„์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ
    return minToHour(last_time) # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค ์‹œ๊ฐ„๊นŒ์ง€ ๋„์ฐฉํ•˜๋ฉด ๋œ๋‹ค

 

๊ทธ๋ฆฌ๊ณ  ์ด์ œ ๊ฐ ๋ฒ„์Šค๋ฅผ ์ˆœํšŒํ•˜๋Š”๋ฐ, ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์™€ ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค๊ฐ€ ์•„๋‹ ๋•Œ์˜ ๋กœ์ง์ด ๋‹ค๋ฅด๋‹ค.

์ดํ•ด๋ฅผ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฒ„์Šค์˜ ์ •์›(`m`)์ด 5๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž.

 

๋งˆ์ง€๋ง‰ ๋ฒ„์Šค๊ฐ€ ์•„๋‹ ๋•Œ

- `crew_arrival` 4๋ฒˆ ํฌ๋ฃจ๋ถ€ํ„ฐ 0๋ฒˆ ํฌ๋ฃจ๊นŒ์ง€ ์—ญ์ˆœ์œผ๋กœ ์ˆœํšŒํ•œ๋‹ค.

    - `crew_arrival` ๋ฆฌ์ŠคํŠธ๋Š” ์ด๋ฏธ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์ž„์„ ์žŠ์ง€ ๋ง์ž.

- ํ•ด๋‹น ๋ฒ„์Šค๋ณด๋‹ค ์ผ์ฐ (ํ˜น์€ ๋™์‹œ์—) ๋„์ฐฉํ•œ ํฌ๋ฃจ๋งŒ `crew_arrival` ๋ฆฌ์ŠคํŠธ์—์„œ ์ œ๊ฑฐ(`del`)ํ•œ๋‹ค. (ํƒ‘์Šนํ–ˆ๋‹ค๋Š” ์˜๋ฏธ)

for j in range(m-1, -1, -1): # j๋Š” m-1๋ถ€ํ„ฐ 0๊นŒ์ง€
    bus_arrival = 540 + i * t # ํ•ด๋‹น ๋ฒ„์Šค ๋„์ฐฉ ์‹œ๊ฐ„
    if crew_arrival[j] <= bus_arrival: # ํฌ๋ฃจ๊ฐ€ ๋ฒ„์Šค๋ณด๋‹ค ์ผ์ฐ ๋„์ฐฉํ–ˆ๋‹ค๋ฉด
        del crew_arrival[j] # ํ•ด๋‹น ํฌ๋ฃจ ํƒ‘์Šน (๋Œ€๊ธฐ ๋ฆฌ์ŠคํŠธ์—์„œ ํฌ๋ฃจ ์ œ๊ฑฐ)

 

๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์ผ ๋•Œ

- ์ด์ „ ๋ฒ„์Šค์— ํƒ‘์Šนํ•œ ํฌ๋ฃจ๋“ค์€ ์ด๋ฏธ ์ œ๊ฑฐ๋œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— `crew_arrival[0]`์€ ๋‹ค์Œ ๋ฒ„์Šค์— ๊ฐ€์žฅ ๋จผ์ € ํƒˆ ํฌ๋ฃจ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

- ์ด๋•Œ `crew_arrival[0]`์ด ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ํƒ‘์Šนํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ์—†๋Š”์ง€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค.

    - `crew_arrival[0]`๊ฐ€ ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ํƒ‘์Šนํ•  ์ˆ˜ ์—†๋‹ค๋ฉด, ์ฝ˜์€ ์—ฌ์œ ๋กญ๊ฒŒ ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค ์‹œ๊ฐ„๊นŒ์ง€๋งŒ ๋„์ฐฉํ•˜๋ฉด ๋œ๋‹ค.

    - `crew_arrival[0]`๊ฐ€ ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค์— ํƒ‘์Šนํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ํฌ๋ฃจ๋ณด๋‹ค 1๋ถ„ ๋จผ์ € ๋„์ฐฉํ•ด์•ผ ๋ฒ„์Šค์— ํƒ‘์Šนํ•  ์ˆ˜ ์žˆ๋‹ค. (๊ฐ™์€ ์‹œ๊ฐ„์— ๋„์ฐฉํ•˜๋ฉด ์ฝ˜์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋ฐ€๋ฆฌ๊ธฐ ๋•Œ๋ฌธ)

if crew_arrival[0] > last_time: # ํƒˆ ์ˆœ์„œ์˜ ํฌ๋ฃจ๊ฐ€ ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค๋ณด๋‹ค ๋Šฆ๊ฒŒ ๋„์ฐฉํ•˜๋‹ˆ๊นŒ ์–ด์ฐจํ”ผ ๋ชป ํƒ
    return minToHour(last_time) # ๋งˆ์ง€๋ง‰ ๋ฒ„์Šค ๋„์ฐฉ ์‹œ๊ฐ„๊นŒ์ง€ ๋„์ฐฉํ•˜๋ฉด ๋œ๋‹ค
return minToHour(crew_arrival[m-1]-1) # ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฒ„์Šค์— ํƒ‘์Šนํ•˜๋Š” ํฌ๋ฃจ๋ณด๋‹ค 1๋ถ„ ๋จผ์ €

 

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ

https://geonlee.tistory.com/39