https://programmers.co.kr/learn/courses/30/lessons/42884
์ฝ๋
import java.util.*;
class Solution {
public static int solution(int[][] routes) {
int answer = 1;
// 2์ฐจ์ ๋ฐฐ์ด ์ ๋ ฌ
// ์ง์
์ง์ ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ -> ๊ฐ์ผ๋ฉด ๋๊ฐ์ง์ ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์
Arrays.sort(routes, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if(o1[0] == o2[0])
return Integer.compare(o1[1], o2[1]);
return Integer.compare(o1[0], o2[0]);
}
});
int outCome = routes[0][1];
for(int i=1; i<routes.length-1; i++) {
// ํ์ฌ ์ฐจ์ ์ง์ถ ์ง์ ์ด ๋ค์์ ๋ค์ด์ฌ ์ฐจ์ ์ง์ถ์ง์ ๋ณด๋ค ํด ๊ฒฝ์ฐ
if(outCome > routes[i][1])
outCome = routes[i][1];
// ํ์ฌ ์ฐจ์ ์ง์ถ ์ง์ ๋ณด๋ค ๋ค์ ์ฐจ์ ์ง์
์ง์ ์ด ๋ ํด๊ฒฝ์ฐ
// -> ๋จ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฏ๋ก ์นด๋ฉ๋ผ +1 , ๋ค์ ๋จ์๋ฒ์ ์ง์
if(outCome < routes[i+1][0]) {
answer ++;
outCome = routes[i+1][1];
}
}
return answer;
}
}
ํ์ด
๊ทธ๋ฆฌ๋ ๋ฌธ์ ๋ผ ๊ทธ๋ฆฌ๋์ค๋ฝ๊ฒ(?) ํ์๋ค.
์ด์ ์ ๊ทธ๋ฆฌ๋ ๋ฌธ์ ๋ค๋ ๊ทธ๋ ๊ณ , ๋ฒ์ ์ง์ ๊ณผ ์ ๋ ฌ, ํ๋ํ๋ ๋น๊ตํด๊ฐ๋ฉฐ ๋ฒ์์ ์ถฉ์กฑํ๋์ง ์๋์ง ํ๋จํ๋ ์์ผ๋ก ํด๊ฒฐํ์๋ค. ๋ฐ๋ผ์ ์ด ๋ฌธ์ ๋ ๋น์ทํ๊ฒ ํด๊ฒฐํ๋ค.
๋จผ์ ์ฃผ์ด์ง 2์ฐจ์ ๋ฐฐ์ด์ ์ ๋ ฌ์ํ๋๋ฐ, ์ ๋ ฌ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ์ด ํ๋ค.
1) ์ฐจ๋์ด ๊ณ ์๋๋ก์ ์ง์ ํ ์ง์ ์์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํ๋ค.
2) ๋ง์ฝ ์ง์ ํ ์ง์ ์ด ๋์ผํ ๊ฒฝ์ฐ ? -> ์ง์ถ ์ง์ ์์ผ๋ก ์ค๋ฆ์ฐจ์ ํ๋ค.
Comparator<T> ์ธํฐํ์ด์ค๋ฅผ ํตํ ๋ฐฐ์ด์ ํ๋ค.
์ ๋ฐฉ์๋๋ก ์ ์ถ๋ ฅ ์๋ฅผ ํ ๋๋ก ์ ๋ ฌ์ ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ ๋ ฌ์ : [[-20,15], [-14,-5], [-18,-13], [-5,-3]]
์ ๋ ฌํ : [[-20,15], [-18,-13], [-14,-5], [-5,-3]]
์ด์ ๊ณ ์๋๋ก์ ๋จผ์ ์ง์ ํ ์ฐจ์ ๋ฆ๊ฒ ์ง์ ํ ์ฐจ๋ฅผ ๋น๊ตํด๊ฐ๋ฉฐ, ์ด๋์ ๋น ์ ธ๋๊ฐ๋์ง , ๋ง์ฝ ๋น ์ ธ๋๊ฐ๋ค๋ฉด ๊ทธ ๋ค์์ฐจ๋ ์นด๋ฉ๋ผ ๋จ์ ๋ฒ์์ ํฌํจ๋๋์ง ์๋๋์ง๋ฅผ ์๊ฐํด์ผ ํ๋ค.
outCome๋ ํ์ฌ ์นด๋ฉ๋ผ์ ๋ฒ์๋ค. ์ด๊ธฐ์ ์นด๋ฉ๋ผ๋ ํ๋๋ ๋ฌด์กฐ๊ฑด ์ค์นํด์ผํ๋ฏ๋ก 1๋ก ์ค์ ํ๊ณ ,
outCome์ ์ด๊ธฐ๊ฐ์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ๋ก ๋ค์ด์จ ์ฐจ๋ก ์ง์ ํ๋ค.(routes[0][1])
๋๊ฐ๋ ์ฐจ(routes[i][1])์ ๊ฐ๋ค๊ณผ ๋น๊ตํด๊ฐ๋ฉฐ ๋ ์์ ๊ฐ๋ค์ ์ ์ฅํ๋ค.
๊ทธ ํ outCome ๊ฐ๋ณด๋ค ํฐ ๊ฐ์์ ๋ค์ ์ฐจ๊ฐ ์ถ๋ฐํ๋ค๋ฉด(์ง์ ์ง์ ) ๋จ์ ๋ฒ์ ์์ ์์ง ์์ผ๋ฏ๋ก, ์นด๋ฉ๋ผ์ ๊ฐฏ์๋ฅผ +1 ํ๋ค.
์ฝ๋๋ ๊ธธ์ง ์์ง๋ง ๋ง์ ์๊ฐ์ ์๊ตฌํ๋ ์ ๋ง ๊น๋ํ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ๋ค..
์์ ๋น์ทํ ๋ฌธ์ ๋ค์ ์๋์ ๊ฐ๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค[Java] - ๋ฉ๋ฆฌ ๋ฐ๊ธฐ(DP) (0) | 2020.03.03 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค[Java] - ์ผ๊ทผ ์ง์ (0) | 2020.03.03 |
ํ๋ก๊ทธ๋๋จธ์ค[Java] - ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ (0) | 2020.03.02 |
[๋ฐฑ์ค] 11727๋ฒ: 2xn ํ์ผ๋ง 2 (0) | 2020.03.02 |
[Codeforces] 677A: Vanya and Fence (0) | 2020.03.01 |
๋๊ธ