728x90
๋ฐ์ํ
๋ฌธ์ ์์ฒด๋ ์ด๋ ต์ง ์์๋ค.
- ์์ ์์ ์ด ๋๋์ง ์์ ์ํ์์ ์๋ก์ด ์์ ์ด ์ถ๊ฐ๋๋ฉด ๋ฉ์ถ๋ค.
- ๋ณด์๋ง์ "์คํ"์ด์๋๋ฐ...
๊ทผ๋ฐ ์ด ๋ฌธ์ ๋ ์ฝ์ง์ ๋๋ฌด ์ค๋ ํด์ ๋ด๊ฐ ์ง ์ฝ๋๋ ์ดํด๊ฐ ์๋๊ณ ์ ์ ๋ ๊ฒ ํ๋์ง ๊ธฐ์ต์ด ๋์ง ์์๋ค. ๊ทธ๋์ ์์ ์ ์ง ์ฝ๋๋ฅผ ๋ค์ ๋ถ์ํด๋ณด์๋ค.
- ์์
์ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์์ ๋ฏธ๋ฆฌ ๋ญ๊ฐ๋ฅผ ๊ณ์ฐํ๋ค๋ณด๋ ๋น๊ตํ๋ ๋ถ๋ถ์ด ์ํฐ๋ฆฌ์๋ค.
- ์ด์ ์ ์ ์ฅํ ํ์ฌ ์๊ฐ๋ณด๋ค ์์ ์์ ์๊ฐ์ด ๋์ค์ด๋ฉด ํ์ฌ ์๊ฐ ๊ฐฑ์
- ๋ค์ ์์ ์์ ์๊ฐ๋ณด๋ค ํ์ฌ ์๊ฐ + ์์ ์๊ฐ์ด ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ํ์ฌ ์๊ฐ์ ์์ ์๊ฐ ๋ํ๊ณ answer์ ๋ฃ์
- ๋ค์ ์์ ์์ ์๊ฐ๋ณด๋ค ํ์ฌ ์๊ฐ + ์์ ์๊ฐ์ด ํฌ๋ฉด ํ์ฌ ์๊ฐ์ ๋ค์ ์์ ์์ ์๊ฐ์ผ๋ก ๊ฐฑ์ ํ๊ณ ์์ ํ์ ๋จ์ ์์ ์๊ฐ(ํ์ฌ ์๊ฐ + ์์ ์๊ฐ - ๋ค์ ์์ ์๊ฐ)์ ๋ฃ์ด์ค
- ๋ค์ ์์ ์ ์์ ํ์ ๋ฃ์ด์ค
- ๋ชจ๋ ํ๋์ ๋๋ฉด ์์ ํ์ ๋จ์ ์์ ๋ค ์์ฐจ์ ์ผ๋ก ์์ ํ๊ณ answer์ ๋ฃ์.
์ ๋ ๊ฒ ํ ํ์๊ฐ ์์ด ๊ทธ๋ฅ ํ ์ค๋ก ์ธ์์ ์ ๋ฆฌํ๊ณ ๋ค์ ์์ ๊ณผ ์คํ์ ๋น๊ตํ๊ธฐ๋ฅผ ๋ฐ๋ณต...
- ์์ ํ์์ ์ฒซ ์์ ์ ๋นผ์ ์คํ์ ๋ฃ์
- (๋ฐ๋ณต) ์์
ํ์์ ๋ค์ ์์
์ ๋นผ์...
- ์คํ์ ์์
์ด ์๋์ง ํ์ธ
- ์คํ์์ ๋นผ์ ๋น๊ตํ๋ ์์ ์์
- ์คํ์ ์์
์ด ์์ผ๋ฉด
- ์คํ์ ์์ ๋ฃ๊ธฐ
- ์คํ์ ์์
์ด ์๋์ง ํ์ธ
def solution(plans):
answer = []
for i,v in enumerate(plans): # ์๊ฐ ๋ฌธ์์ด์ ์ซ์๋ก ๋ณ๊ฒฝ
job, t1, t2 = v
hh,mm = t1.split(":")
plans[i][1],plans[i][2] = int(hh) * 60 + int(mm), int(t2)
plans.sort(key=lambda x:x[1]) # ์ ๋ ฌ
stack = [] # ์คํ ์ด๊ธฐํ
stack.append(plans[0]) # ์คํ์ ์์
๋ฃ๊ธฐ
time = plans[0][1] # ์ฒซ ์์
์์ ์๊ฐ
for i in range(1, len(plans)):
next_time = plans[i][1] # ๋ค์ ์์
์์ ์๊ฐ
while len(stack): # ์คํ์ ์์
์ด ์์ผ๋ฉด
job, time_start, time_spend = stack.pop() # ์คํ์์ ์์
๊บผ๋ด๊ธฐ
if time < time_start: # ํ์ฌ ์๊ฐ๋ณด๋ค ์คํ์ ์๋ ์์
์์ ์๊ฐ์ด ๋๋ฆฌ๋ฉด
time = time_start # ์๊ฐ ์กฐ์
time_finish = time + time_spend # ์คํ์ ์์
์ด ๋๋๋ ์๊ฐ
if next_time < time_finish: # ๋ค์ ์์
์์ ์๊ฐ์ด ์คํ์ ์๋ ์์
์๋ฃ์๊ฐ๋ณด๋ค ๋น ๋ฅด๋ฉด
stack.append([job, time_start, time_finish - next_time]) # ์คํ์์ ๊บผ๋ธ ์์
์ ๋ค์ ๋ฃ๊ณ
time = next_time # ํ์ฌ ์๊ฐ์ ๋ค์ ์์
์์ ์๊ฐ์ผ๋ก ๋ณ๊ฒฝ
break # ์ค์ง
else:
answer.append(job) # ์คํ์ ์์
์ ์๋ฃํ๋ค.
time += time_spend # ํ์ฌ ์๊ฐ์ ์์ ์๊ฐ์ ๋ํ๋ค.
# ์คํ์ ์์
์ด ์์ผ๋ฉด ๊ณ์
stack.append(plans[i]) # ์คํ์ ์์
๋ฃ๊ธฐ
while len(stack): # ์คํ์ ๋จ์ ์์
๊บผ๋ด์ ์๋ฃํ๊ธฐ
answer.append(stack.pop()[0])
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.03ms, 10.4MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.05ms, 10.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.06ms, 10.3MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.07ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.06ms, 10.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.12ms, 10.4MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.15ms, 10.4MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.18ms, 10.3MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.29ms, 10.6MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.25ms, 10.4MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.42ms, 10.3MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.75ms, 10.4MB)
ํ
์คํธ 13 ใ ํต๊ณผ (1.08ms, 10.4MB)
ํ
์คํธ 14 ใ ํต๊ณผ (1.47ms, 10.6MB)
ํ
์คํธ 15 ใ ํต๊ณผ (2.56ms, 10.8MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 19 ใ ํต๊ณผ (0.04ms, 10.4MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.28ms, 10.3MB)
ํ
์คํธ 21 ใ ํต๊ณผ (0.27ms, 10.4MB)
ํ
์คํธ 22 ใ ํต๊ณผ (1.40ms, 10.6MB)
ํ
์คํธ 23 ใ ํต๊ณผ (2.76ms, 10.8MB)
ํ
์คํธ 24 ใ ํต๊ณผ (1.77ms, 10.8MB)
๊ณ ์์ ํ์ด... ๋ญ๊ฐ ๋๊ฒ ๊ฐ๋จํด์ ธ ๋ฒ๋ ธ๋ค.
def solution(plans):
plans = sorted(map(lambda x: [x[0], int(x[1][:2]) * 60 + int(x[1][3:]), int(x[2])], plans), key=lambda x: -x[1])
lst = []
while plans:
x = plans.pop()
for i, v in enumerate(lst):
if v[0] > x[1]:
lst[i][0] += x[2]
lst.append([x[1] + x[2], x[0]])
lst.sort()
return list(map(lambda x: x[1], lst))
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.05ms, 10.2MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.04ms, 10.3MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.07ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.08ms, 10.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.11ms, 10.3MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.52ms, 10.3MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.33ms, 10.4MB)
ํ
์คํธ 9 ใ ํต๊ณผ (1.95ms, 10.4MB)
ํ
์คํธ 10 ใ ํต๊ณผ (1.19ms, 10.4MB)
ํ
์คํธ 11 ใ ํต๊ณผ (3.35ms, 10.3MB)
ํ
์คํธ 12 ใ ํต๊ณผ (28.39ms, 10.7MB)
ํ
์คํธ 13 ใ ํต๊ณผ (20.49ms, 10.7MB)
ํ
์คํธ 14 ใ ํต๊ณผ (84.96ms, 10.7MB)
ํ
์คํธ 15 ใ ํต๊ณผ (89.17ms, 10.6MB)
ํ
์คํธ 16 ใ ํต๊ณผ (0.04ms, 10.5MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.04ms, 10.3MB)
ํ
์คํธ 19 ใ ํต๊ณผ (0.06ms, 10.3MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.86ms, 10.2MB)
ํ
์คํธ 21 ใ ํต๊ณผ (0.93ms, 10.3MB)
ํ
์คํธ 22 ใ ํต๊ณผ (85.63ms, 10.6MB)
ํ
์คํธ 23 ใ ํต๊ณผ (87.52ms, 10.6MB)
ํ
์คํธ 24 ใ ํต๊ณผ (81.80ms, 10.6MB)
๋ ์์ง๋ ๊ฐ ๊ธธ์ด ๋ฉ๊ตฌ๋...
728x90
๋ฐ์ํ
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค 2๋ ๋ฒจ ๋ฌธ์ ์์ ๊ฐ์ฅ ์ด๋ ค์ด ๋ฌธ์ ... (0) | 2023.08.08 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค LV2 ๋ฆฌ์ฝ์ณ ๋ก๋ด (2) | 2023.07.31 |
ํ๋ก๊ทธ๋๋จธ์ค ๋จ์ 2๋ ๋ฒจ ๋ฌธ์ ๋ง๋ฌด๋ฆฌ ํ๊ธฐ (0) | 2023.07.16 |
ํ์ด์ฌ Base64 ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ ์ํ์ฝ๋ (0) | 2023.07.12 |
ํ๋ก๊ทธ๋๋จธ์ค LV2 ์๊ฒฉ ์์คํ = ๋จ์์นด๋ฉ๋ผ (0) | 2023.06.28 |