728x90
https://school.programmers.co.kr/learn/courses/30/lessons/155651#
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ด๋ค ๋ฐฉ์์ ๋ง์ง๋ง ์๋์ด ํด์ค ํ, ์ฒญ์๊น์ง ๋๋ ์๊ฐ์ ๊ทธ ๋ฐฉ์ available time์ด๋ผ๊ณ ํ์.
๊ฐ ๋ฐฉ์ available time์ ๊ธฐ๋กํ๊ธฐ ์ํด rooms ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์๋ค.
์๋์ด ๋ค์ด๊ฐ ์ ์๋ ๊ฐ์ค์ด ์์ผ๋ฉด, ๊ทธ ๊ฐ์ค์ available time์ ์๋ก์ด ์๋์ ์๊ฐ์ผ๋ก updateํด์ค๋ค.
์๋ค๋ฉด, ์๋ก์ด ๊ฐ์ค์ ์ถ๊ฐํ๊ณ available time์ ๊ธฐ๋กํ๋ค.
python
def solution(book_time):
answer = 0
# ํด์ค ํ ์ฒญ์์๊ฐ 10๋ถ
# ์ฝ๋์๊ฒ ํ์ํ ์ต์ ๊ฐ์ค์ ์๋ฅผ ๋ฆฌํด
book_time.sort()
rooms = ["00:00"] # ๋ฐฉ๋ง๋ค ์ข
๋ฃ์๊ฐ์ ์ ์ฅ
for time in book_time:
start, end = time
# ์ฒญ์๊น์ง ์๋ฃํ ์๊ฐ ๊ณ์ฐ
if int(end[3:]) <= 49:
end = end[:3] + str(int(end[3:])+10)
else:
end = str(int(end[:2])+1).zfill(2) + ':' + str((int(end[3:])+10)%60).zfill(2)
# ์๋ ๋ฐ์ ์ ์๋ ๊ฐ์ค์ด ์๋ค๋ฉด
if start >= min(rooms):
# update
idx = rooms.index(min(rooms))
rooms[idx] = end
# ์์ผ๋ฉด ๋ฐฉ ๊ฐ์ ๋๋ฆฌ๊ธฐ
else:
rooms.append(end)
return len(rooms)
728x90
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > DP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2xn ํ์ผ๋ง 1, 2 (0) | 2024.11.13 |
---|---|
[๋ฐฑ์ค]10211๋ฒ: Maximum Subarray (0) | 2023.10.18 |
[ํ๋ก๊ทธ๋๋จธ์ค]๋ ๋ฐ๋จน๊ธฐ (0) | 2023.06.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2023.05.31 |
[๋ฐฑ์ค]1149๋ฒ: RGB๊ฑฐ๋ฆฌ (0) | 2023.05.27 |