-
[Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค ๊ณ ๋์ kit ๋จ์์นด๋ฉ๋ผAlgo Rhythm๐บ๐/Programmers 2020. 7. 16. 12:30
๐ ๋ฌธ์ ์ค๋ช
๊ณ ์๋๋ก๋ฅผ ์ด๋ํ๋ ๋ชจ๋ ์ฐจ๋์ด ๊ณ ์๋๋ก๋ฅผ ์ด์ฉํ๋ฉด์ ๋จ์์ฉ ์นด๋ฉ๋ผ๋ฅผ ํ ๋ฒ์ ๋ง๋๋๋ก ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ ค๊ณ ํฉ๋๋ค.
๊ณ ์๋๋ก๋ฅผ ์ด๋ํ๋ ์ฐจ๋์ ๊ฒฝ๋ก routes๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฐจ๋์ด ํ ๋ฒ์ ๋จ์์ฉ ์นด๋ฉ๋ผ๋ฅผ ๋ง๋๋๋ก ํ๋ ค๋ฉด ์ต์ ๋ช ๋์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํด์ผ ํ๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ์ฌํญ
-
์ฐจ๋์ ๋์๋ 1๋ ์ด์ 10,000๋ ์ดํ์ ๋๋ค.
-
routes์๋ ์ฐจ๋์ ์ด๋ ๊ฒฝ๋ก๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ routes[i][0]์๋ i๋ฒ์งธ ์ฐจ๋์ด ๊ณ ์๋๋ก์ ์ง์ ํ ์ง์ , routes[i][1]์๋ i๋ฒ์งธ ์ฐจ๋์ด ๊ณ ์๋๋ก์์ ๋๊ฐ ์ง์ ์ด ์ ํ ์์ต๋๋ค.
-
์ฐจ๋์ ์ง์ /์ง์ถ ์ง์ ์ ์นด๋ฉ๋ผ๊ฐ ์ค์น๋์ด ์์ด๋ ์นด๋ฉ๋ผ๋ฅผ ๋ง๋๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
-
์ฐจ๋์ ์ง์ ์ง์ , ์ง์ถ ์ง์ ์ -30,000 ์ด์ 30,000 ์ดํ์ ๋๋ค.
๐ฏ ์ด๋ป๊ฒ ํ์๋
import java.util.Arrays; class Solution { public int solution(int[][] routes) { int nCamera = routes.length; // ๋ชจ๋ ์ฐจ๋ค์ ์ด๋ ๊ตฌ๊ฐ๋ง๋ค ์นด๋ฉ๋ผ๊ฐ ํ์ํ๋ค๊ณ ๊ฐ์ // ์ฐจ๋์ ์ง์ ์ง์ ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ Arrays.sort(routes, (o1, o2) -> Integer.compare(o1[0], o2[0])); int pEnter1 = routes[0][0]; int pExit1 = routes[0][1]; for(int i = 1; i < routes.length; i++) { int pEnter2 = routes[i][0]; int pExit2 = routes[i][1]; // ํ ์ฐจ๋์ ์ด๋๊ตฌ๊ฐ์ด ๋ค๋ฅธ ์ฐจ๋์ ์ด๋๊ตฌ๊ฐ์ ์์ ํฌํจํ๋ ๊ฒฝ์ฐ if(pEnter1 <= pEnter2 && pExit1 >= pExit2) { pEnter1 = pEnter2; pExit1 = pExit2; nCamera--; continue; } // ํ ์ฐจ๋์ ์ด๋๊ตฌ๊ฐ์ด ๋ค๋ฅธ ์ฐจ๋์ ์ด๋๊ตฌ๊ฐ์ ๋ถ๋ถ ํฌํจํ๋ ๊ฒฝ์ฐ if(pEnter1 <= pEnter2 && pExit1 < pExit2 && pExit1 >= pEnter2) { pEnter1 = pEnter2; pExit1 = (pExit1 <= pExit2) ? pExit1 : pExit2; nCamera--; continue; } pEnter1 = pEnter2; pExit1 = pExit2; } return nCamera; } }
๐ง ์ ์ ๋ ๊ฒ ํ์๋
๋ด ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ์ 'ํ ์ฐจ์ ์ด๋๊ตฌ๊ฐ์ด ๋ค๋ฅธ ์ฐจ์ ์ด๋๊ตฌ๊ฐ์ ํฌํจํ๋ฉด ๊ฒน์น๋ ์ด๋๊ตฌ๊ฐ์ ์๋ก์ด ์ฐจ ํ๋์ ์ด๋๊ตฌ๊ฐ์ผ๋ก ๊ฐ์ฃผํ๊ธฐ' ์ด๋ค.
๋ด ์๊ณ ๋ฆฌ์ฆ์๋ ๊ฐ์ ์ด ์๋๋ฐ ๊ทธ๊ฒ์ ๋ชจ๋ ์ฐจ๋ค์ ์ด๋๊ตฌ๊ฐ๋ง๋ค ์นด๋ฉ๋ผ๊ฐ ํ๋์ฉ ํ์ํ๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ํ ์ฐจ์ ์ด๋๊ตฌ๊ฐ์ด ๋ค๋ฅธ ์ฐจ์ ์ด๋๊ตฌ๊ฐ์ ํฌํจํ๋ฉด ๊ฒธ์น๋ ์ด๋๊ตฌ๊ฐ์ ์๋ก์ด ์ฐจ ํ๋์ ์ด๋๊ตฌ๊ฐ์ผ๋ก ๊ฐ์ฃผํ๊ณ ์นด๋ฉ๋ผ ๊ฐ์๋ฅผ ์ค์ฌ์ค๋ค.
์ด๋ฅผ ์ํด์๋ ๋จผ์ ์ฐจ๋์ ์ง์ ์ง์ ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํ ํ์๊ฐ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐจ๋์ ์ด๋๊ตฌ๊ฐ์ ํ๋์ฉ ์ดํด๋ณด๋ฉฐ ํฌํจ ์ฌ๋ถ๋ฅผ ํ์ธํ๋๋ฐ ์๊ฐํด๋ณด๋ฉด ํฌํจ์๋ ์๋์ ๊ฐ์ ๋ ์ข ๋ฅ๊ฐ ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ๋ ๊ฒฝ์ฐ๋ง๋ค ๊ฒน์น๋ ๊ตฌ๊ฐ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ตฌ๊ฐ ์์ ์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ค.
1. ์์ ํฌํจ
2. ๋ถ๋ถ ํฌํจ
๐ ๋ฌด์์ ๋ฐฐ์ ๋
์๊ฐ๋ณด๋ค ์ด๋ ต์ง ์์๋ค. ์๋ง ๊ทธ๋งํผ ์ฑ์ฅํ๋ค๋ ์ฆ๊ฑฐ์ผ ๊ฒ์ด๋ค ๐๐๐
๊ทธ๋ฆฌ๊ณ ๋ด ์๊ณ ๋ฆฌ์ฆ์ด ๊ทธ๋ฆฌ๋๋ณด๋ค ์ํ์ ๊ฐ๊น์ด๋ฐ ๊ทธ๋ฆฌ๋๋ก๋ ์ด๋ป๊ฒ ํ ์ ์๋์ง ๊ณ ๋ฏผํด์ผ๊ฒ ๋ค.
'Algo Rhythm๐บ๐ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
-