๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[Programmers] ๊ณผ์ ์งํํ๊ธฐ ๋ณธ๋ฌธ
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
๋ฐ์ํ
'๐ฆฅ ์ฝํ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ (0) | 2023.04.14 |
---|---|
[Programmers] ๊ณต์ ์ฐ์ฑ (0) | 2023.04.14 |
[Programmers] ์ถ์ต ์ ์ (0) | 2023.04.14 |
[Programmers] ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ (0) | 2023.04.14 |
[Programmers] ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (0) | 2023.04.12 |
Comments