๋ฌธ์ ์ค๋ช
์ถ์ ํธ๋ํฝ
์ด๋ฒ ์ถ์์๋ ์์คํ ์ฅ์ ๊ฐ ์๋ ๋ช ์ ์ ๋ณด๋ด๊ณ ์ถ์ ์ดํผ์น๋ ์๋ฒ๋ฅผ ์ฆ์คํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด๋ค. ์ฅ์ ๋๋น์ฉ ์๋ฒ ์ฆ์ค ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ์๋ ์ถ์ ๊ธฐ๊ฐ์ธ 9์ 15์ผ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ ํ ์ด๋น ์ต๋ ์ฒ๋ฆฌ๋์ ๊ณ์ฐํด๋ณด๊ธฐ๋ก ํ๋ค.์ด๋น ์ต๋ ์ฒ๋ฆฌ๋์ ์์ฒญ์ ์๋ต ์๋ฃ ์ฌ๋ถ์ ๊ด๊ณ์์ด ์์ ์๊ฐ๋ถํฐ 1์ด(=1,000๋ฐ๋ฆฌ์ด)๊ฐ ์ฒ๋ฆฌํ๋ ์์ฒญ์ ์ต๋ ๊ฐ์๋ฅผ ์๋ฏธํ๋ค.
์ ๋ ฅ ํ์
- solutionํจ์์ ์ ๋ฌ๋๋lines๋ฐฐ์ด์N(1 โฆNโฆ 2,000)๊ฐ์ ๋ก๊ทธ ๋ฌธ์์ด๋ก ๋์ด ์์ผ๋ฉฐ, ๊ฐ ๋ก๊ทธ ๋ฌธ์์ด๋ง๋ค ์์ฒญ์ ๋ํ ์๋ต์๋ฃ์๊ฐS์ ์ฒ๋ฆฌ์๊ฐT๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์๋ค.
- ์๋ต์๋ฃ์๊ฐS๋ ์๋ ์ถ์์ธ 2016๋ 9์ 15์ผ๋ง ํฌํจํ์ฌ ๊ณ ์ ๊ธธ์ด2016-09-15 hh:mm:ss.sssํ์์ผ๋ก ๋์ด ์๋ค.
- ์ฒ๋ฆฌ์๊ฐT๋0.1s,0.312s,2s์ ๊ฐ์ด ์ต๋ ์์์ ์ ์งธ ์๋ฆฌ๊น์ง ๊ธฐ๋กํ๋ฉฐ ๋ค์๋ ์ด ๋จ์๋ฅผ ์๋ฏธํ๋s๋ก ๋๋๋ค.
- ์๋ฅผ ๋ค์ด, ๋ก๊ทธ ๋ฌธ์์ด2016-09-15 03:10:33.020 0.011s์2016๋ 9์ 15์ผ ์ค์ 3์ 10๋ถ **33.010์ด**๋ถํฐ2016๋ 9์ 15์ผ ์ค์ 3์ 10๋ถ **33.020์ด**๊น์ง**0.011์ด**๋์ ์ฒ๋ฆฌ๋ ์์ฒญ์ ์๋ฏธํ๋ค.(์ฒ๋ฆฌ์๊ฐ์ ์์์๊ฐ๊ณผ ๋์๊ฐ์ ํฌํจ)
- ์๋ฒ์๋ ํ์์์์ด 3์ด๋ก ์ ์ฉ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ฒ๋ฆฌ์๊ฐ์0.001 โฆ T โฆ 3.000์ด๋ค.
- lines๋ฐฐ์ด์ ์๋ต์๋ฃ์๊ฐS๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋์ด ์๋ค.
์ถ๋ ฅ ํ์
- solutionํจ์์์๋ ๋ก๊ทธ ๋ฐ์ดํฐlines๋ฐฐ์ด์ ๋ํด์ด๋น ์ต๋ ์ฒ๋ฆฌ๋์ ๋ฆฌํดํ๋ค.
์ ์ถ๋ ฅ ์์
์์ 1
์ ๋ ฅ: [
2016-09-15 01:00:04.001 2.0s,
2016-09-15 01:00:07.000 2s
]์ถ๋ ฅ: 1
์์ 2
์ ๋ ฅ: [
2016-09-15 01:00:04.002 2.0s,
2016-09-15 01:00:07.000 2s
]์ถ๋ ฅ: 2
์ค๋ช : ์ฒ๋ฆฌ์๊ฐ์ ์์์๊ฐ๊ณผ ๋์๊ฐ์ํฌํจํ๋ฏ๋ก
์ฒซ ๋ฒ์งธ ๋ก๊ทธ๋01:00:02.003 ~ 01:00:04.002์์ 2์ด ๋์ ์ฒ๋ฆฌ๋์์ผ๋ฉฐ,
๋ ๋ฒ์งธ ๋ก๊ทธ๋01:00:05.001 ~ 01:00:07.000์์ 2์ด ๋์ ์ฒ๋ฆฌ๋๋ค.
๋ฐ๋ผ์, ์ฒซ ๋ฒ์งธ ๋ก๊ทธ๊ฐ ๋๋๋ ์์ ๊ณผ ๋ ๋ฒ์งธ ๋ก๊ทธ๊ฐ ์์ํ๋ ์์ ์ ๊ตฌ๊ฐ์ธ01:00:04.002 ~ 01:00:05.0011์ด ๋์ ์ต๋ 2๊ฐ๊ฐ ๋๋ค.
์์ 3
์ ๋ ฅ: [
2016-09-15 20:59:57.421 0.351s,
2016-09-15 20:59:58.233 1.181s,
2016-09-15 20:59:58.299 0.8s,
2016-09-15 20:59:58.688 1.041s,
2016-09-15 20:59:59.591 1.412s,
2016-09-15 21:00:00.464 1.466s,
2016-09-15 21:00:00.741 1.581s,
2016-09-15 21:00:00.748 2.31s,
2016-09-15 21:00:00.966 0.381s,
2016-09-15 21:00:02.066 2.62s
]์ถ๋ ฅ: 7
์ค๋ช : ์๋ ํ์๋ผ์ธ ๊ทธ๋ฆผ์์ ๋นจ๊ฐ์์ผ๋ก ํ์๋ 1์ด ๊ฐ ๊ตฌ๊ฐ์ ์ฒ๋ฆฌ๋์ ๊ตฌํด๋ณด๋ฉด(1)์ 4๊ฐ,(2)๋ 7๊ฐ,(3)๋ 2๊ฐ์์ ์ ์ ์๋ค. ๋ฐ๋ผ์์ด๋น ์ต๋ ์ฒ๋ฆฌ๋์ 7์ด ๋๋ฉฐ, ๋์ผํ ์ต๋ ์ฒ๋ฆฌ๋์ ๊ฐ๋ 1์ด ๊ตฌ๊ฐ์ ์ฌ๋ฌ ๊ฐ ์กด์ฌํ ์ ์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ์์๋ ๊ตฌ๊ฐ์ด ์๋ ๊ฐ์๋ง ์ถ๋ ฅํ๋ค.
ํ์ด
๋ฌธ์์ด ์ฒ๋ฆฌ๋ฌธ์ ์ด๋ค.
๋ฑํ ์๊ณ ๋ฆฌ์ฆ์ ๋ณด๋ ๋ฌธ์ ๋ ์๋๊ณ , ๊ตฌํ๋ ฅ์ ํ์ธํ๋ ๋ฌธ์ ์ด๋ฏํ๋ค.
์๊ฐ์ ๋ชจ๋ second ๋จ์๋ก ๋ฐ๊พธ์ด์ผ ๊ณ์ฐ์ด ์ฌ์์ง๋ค.
second๋ก ๋ฐ๊พธ์์ ๋ ์์์ ์ด ์๊ธฐ๋๋ฐ, ์ด๋ ๋ถ๋์์์ ์ด์ ๋๋ฌธ์ ์ฃผ์ํด์ผํ๋ค.
๋ฐ๋ผ์ ๋๋ ๋ชจ๋ ๊ฐ์ด 1000์ ๊ณฑํด ms ๋จ์๋ก ๋ฐ๊ฟจ๋ค.
๊ทธ ํ ์์์๊ฐ, ์ข
๋ฃ์๊ฐ์ ๊ตฌํ๋ค.
์กฐ๊ธ ์๊ฐํด๋ณด๋ฉด, ์ ๋ต์ด ๋๋ ์ต๋ ๊ฐ์๋
ํน์ ํ ์์ฒญ์ ์์์๊ฐ ~ ์์์๊ฐ + 1000ms - 1ms, ์ข
๋ฃ์๊ฐ ~ ์ข
๋ฃ์๊ฐ + 1000ms - 1ms ์ ์์์ ์ ์ ์๊ณ
๋ฐ๋ผ์ ์ ๋ต์ด ๋ ์ ์๋ ๋ชจ๋ ์๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋ค ์๊ฐํด๋ณด๋ฉด ๋๋ค.
def isIn(start, times):
# ํน์ ์๊ฐ start๊ฐ ์ฃผ์ด์ก์ ๋, ๋ช ๊ฐ์ ์๊ฐ์ด ์๋๊ฐ?
ret = 0
end = start + 1000 - 1
for time in times:
if start <= time[1] and end >= time[0]:
ret += 1
return ret
def solution(lines):
times = []
for line in lines:
p = line.split(' ')
end = p[1].split(':')
end = int(end[0]) * 3600 * 1000 + int(end[1]) * 60 * 1000 + float(end[2]) * 1000
start = end - (float(p[2][:-1]) * 1000) + 1
times.append((start, end))
ret = 0
for time in times:
start, end = time
ret = max(isIn(start, times), ret)
ret = max(isIn(end, times), ret)
return ret
'Problem Solving ๐ฅ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ๋จผ ๋ ธ๋ / ํ์ด์ฌ (0) | 2021.01.19 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ / ํ์ด์ฌ (0) | 2021.01.19 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ์ ํฐ๋จ๋ฆฌ๊ธฐ / ํ์ด์ฌ / (์ต์, ์ต๋, ํ) (2) | 2021.01.18 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ์ผ๋ช ์ ๋ ฌ / ํ์ด์ฌ (0) | 2021.01.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] n์ง์ ๊ฒ์ / ํ์ด์ฌ (0) | 2021.01.17 |