728x90
๋ฐ์ํ
๋ฌธ์ ์ค๋ช
๊ณ ์๋๋ก๋ฅผ ์ด๋ํ๋ ๋ชจ๋ ์ฐจ๋์ด ๊ณ ์๋๋ก๋ฅผ ์ด์ฉํ๋ฉด์ ๋จ์์ฉ ์นด๋ฉ๋ผ๋ฅผ ํ ๋ฒ์ ๋ง๋๋๋ก ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ ค๊ณ ํฉ๋๋ค.
๊ณ ์๋๋ก๋ฅผ ์ด๋ํ๋ ์ฐจ๋์ ๊ฒฝ๋ก routes๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฐจ๋์ด ํ ๋ฒ์ ๋จ์์ฉ ์นด๋ฉ๋ผ๋ฅผ ๋ง๋๋๋ก ํ๋ ค๋ฉด ์ต์ ๋ช ๋์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํด์ผ ํ๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์ฌํญ
- ์ฐจ๋์ ๋์๋ 1๋ ์ด์ 10,000๋ ์ดํ์ ๋๋ค.
- routes์๋ ์ฐจ๋์ ์ด๋ ๊ฒฝ๋ก๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ routes[i][0]์๋ i๋ฒ์งธ ์ฐจ๋์ด ๊ณ ์๋๋ก์ ์ง์ ํ ์ง์ , routes[i][1]์๋ i๋ฒ์งธ ์ฐจ๋์ด ๊ณ ์๋๋ก์์ ๋๊ฐ ์ง์ ์ด ์ ํ ์์ต๋๋ค.
- ์ฐจ๋์ ์ง์ /์ง์ถ ์ง์ ์ ์นด๋ฉ๋ผ๊ฐ ์ค์น๋์ด ์์ด๋ ์นด๋ฉ๋ผ๋ฅผ ๋ง๋๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
- ์ฐจ๋์ ์ง์ ์ง์ , ์ง์ถ ์ง์ ์ -30,000 ์ด์ 30,000 ์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์
routes | return |
[[-20,-15], [-14,-5], [-18,-13], [-5,-3]] | 2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
-5 ์ง์ ์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ฉด ๋ ๋ฒ์งธ, ๋ค ๋ฒ์งธ ์ฐจ๋์ด ์นด๋ฉ๋ผ๋ฅผ ๋ง๋ฉ๋๋ค.
-15 ์ง์ ์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ฉด ์ฒซ ๋ฒ์งธ, ์ธ ๋ฒ์งธ ์ฐจ๋์ด ์นด๋ฉ๋ผ๋ฅผ ๋ง๋ฉ๋๋ค.
ํ์ด
- ํ์๋ฒ ๊ทธ๋ฐ๊ฑฐ ๋ชจ๋ฅด๊ฒ ๊ณ ๊ทธ๋ฅ ๊ณ์ฐ ๋ฌธ์ ... ใ ก.ใ ก
- ๋ฌด์ง์ฑ ์ฝ๋ฉ์ผ๋ก ์ฝ๊ฒ ํ ์ ์๋ค.
def solution(routes):
routes.sort(key=lambda x:(x[1],x[0]))
์์ฐํ์ฐจ๋ = len(routes)
์ฐฐ์นต = [1 for _ in range(len(routes))]
์นด๋ฉ๋ผ_์ค์น_์๋ = 0
์นด๋ฉ๋ผ_index = 0
์นด๋ฉ๋ผ_์์น = routes[์นด๋ฉ๋ผ_index][1]
while ์์ฐํ์ฐจ๋ > 0:
for i in range(์นด๋ฉ๋ผ_index,len(routes)):
if ์ฐฐ์นต[i] == 1 and routes[i][0] <= ์นด๋ฉ๋ผ_์์น and ์นด๋ฉ๋ผ_์์น <= routes[i][1]:
์ฐฐ์นต[i] = 0
์์ฐํ์ฐจ๋ -= 1
for i in range(์นด๋ฉ๋ผ_index,len(routes)):
if ์ฐฐ์นต[i] == 1:
์นด๋ฉ๋ผ_index = i
์นด๋ฉ๋ผ_์์น = routes[์นด๋ฉ๋ผ_index][1]
์นด๋ฉ๋ผ_์ค์น_์๋ += 1
break
return ์นด๋ฉ๋ผ_์ค์น_์๋ + 1
- ํจ์จ์ฑ ๋ฎ์๊ฑฐ ๋ณด๋ ์ ๋ต์ ๋ฐ๋ก ์๋ ๋ด
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.04ms, 10.5MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.06ms, 10.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.09ms, 10.4MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.08ms, 10.6MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.08ms, 10.3MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (6.44ms, 10.5MB)
ํ
์คํธ 2 ใ ํต๊ณผ (3.22ms, 10.5MB)
ํ
์คํธ 3 ใ ํต๊ณผ (14.72ms, 10.9MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.22ms, 10.4MB)
ํ
์คํธ 5 ใ ํต๊ณผ (20.49ms, 11MB)
- ๊ณ ์์ ํ์ด... ์ง๋ ธ๋ค.
- ๋ ๋๋ค ์ํ
ํ ๋ ๊ณ ๋ฏผ ์์ฒญํ๋๋ฐ(์ฌ์ง์ด x[1]-x[0]ํด์ ์งง์ ๊ตฌ๊ฐ์ผ๋ก ์ฐจ๋๋ค ๋ชจ์ผ๊ณ ๊ทธ๋ฌ๋ค)
- ์ด ๋ถ์ ๊ทธ๋ฅ ์ฟจํ๊ฒ x[1]ํด๋ฒ๋ฆผ
- ๋ง์ง๋ง ์นด๋ฉ๋ผ๊ฐ -3๋ง์ ์์ด. ์ด๊ฒ ์ ๋ผ? ํ๋๋ฐ
- ๋ง์ง๋ง ์นด๋ฉ๋ผ๊ฐ ์ ์ผ ๋ง์ง๋ง์ ๋๊ฐ ๋ ์๋ณด๋ค ์์ด๋ฉด ์นด๋ฉ๋ผ 1๋ ์ค์น...
- ๊ทธ๋ ๊ฒ ์์ชฝ์ผ๋ก ์ด๋ํ๋ฉด์ ๊ฒน์น๋ ๊ฒ๋ค ์ถ๋ฆฌ๋ ๊ฑด๊ฐ๋ด...
- ๋์ฒ๋ผ ์๋ค๋ก ์นด๋ฉ๋ผ ์์น ์ฒดํฌํ ํ์๊ฐ ์์๋ค.
- ๋ ๋๋ค ์ํ
ํ ๋ ๊ณ ๋ฏผ ์์ฒญํ๋๋ฐ(์ฌ์ง์ด x[1]-x[0]ํด์ ์งง์ ๊ตฌ๊ฐ์ผ๋ก ์ฐจ๋๋ค ๋ชจ์ผ๊ณ ๊ทธ๋ฌ๋ค)
def solution(routes):
routes = sorted(routes, key=lambda x: x[1])
last_camera = -30000
answer = 0
for route in routes:
if last_camera < route[0]:
answer += 1
last_camera = route[1]
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.05ms, 10.2MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.61ms, 10.5MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.40ms, 10.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.70ms, 10.5MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.05ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (1.28ms, 10.6MB)
ํ์๋ฒ ๋ฌธ์ ํ๋ ๋จ์๋ค.
728x90
๋ฐ์ํ
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ๊ดํธ๋ณํ (2020 KAKAO BLIND RECRUITMENT) (0) | 2023.02.27 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ์ฌ ์ฐ๊ฒฐํ๊ธฐ (0) | 2023.02.27 |
ํ๋ก๊ทธ๋๋จธ์ค ์คํฌ ์ฒดํฌ ํ ์คํธ Level 3 ํ๋ฝ ใ ใ ใ (0) | 2023.02.27 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ฑ๊ตฃ๊ธธ (๋์ ๊ณํ๋ฒ, Dynamic Programming) (0) | 2023.02.27 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ (0) | 2023.02.27 |