https://programmers.co.kr/learn/courses/30/lessons/42884?language=java
๋ฌธ์
๊ณ ์๋๋ก๋ฅผ ์ด๋ํ๋ ๋ชจ๋ ์ฐจ๋์ด ๊ณ ์๋๋ก๋ฅผ ์ด์ฉํ๋ฉด์ ๋จ์์ฉ ์นด๋ฉ๋ผ๋ฅผ ํ ๋ฒ์ ๋ง๋๋๋ก ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ ค๊ณ ํฉ๋๋ค.
๊ณ ์๋๋ก๋ฅผ ์ด๋ํ๋ ์ฐจ๋์ ๊ฒฝ๋ก routes๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฐจ๋์ด ํ ๋ฒ์ ๋จ์์ฉ ์นด๋ฉ๋ผ๋ฅผ ๋ง๋๋๋ก ํ๋ ค๋ฉด ์ต์ ๋ช ๋์ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํด์ผ ํ๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์ฌํญ
- ์ฐจ๋์ ๋์๋ 1๋ ์ด์ 10,000๋ ์ดํ์ ๋๋ค.
- routes์๋ ์ฐจ๋์ ์ด๋ ๊ฒฝ๋ก๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ routes[i][0]์๋ i๋ฒ์งธ ์ฐจ๋์ด ๊ณ ์๋๋ก์ ์ง์ ํ ์ง์ , routes[i][1]์๋ i๋ฒ์งธ ์ฐจ๋์ด ๊ณ ์๋๋ก์์ ๋๊ฐ ์ง์ ์ด ์ ํ ์์ต๋๋ค.
- ์ฐจ๋์ ์ง์ /์ง์ถ ์ง์ ์ ์นด๋ฉ๋ผ๊ฐ ์ค์น๋์ด ์์ด๋ ์นด๋ฉ๋ผ๋ฅผ ๋ง๋๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
- ์ฐจ๋์ ์ง์ ์ง์ , ์ง์ถ ์ง์ ์ -30,000 ์ด์ 30,000 ์ดํ์ ๋๋ค.
ํ์ด
CarList ์ routes๋ฅผ ์ ์ฅ ๐ ์ง์ถ ์์ ์ด ๋น ๋ฅธ ์์ผ๋ก ์ ๋ ฌ
nowCarExit = ๊ฐ์ฅ ๋น ๋ฅธ ์ง์ถ ์์ ์ผ๋ก ๋๊ณ
โก๏ธ carList๋ฅผ ๋๋ฉด์ ์ง์ ์์ ์ด nowCarExit๋ณด๋ค ๋น ๋ฅด๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ ๊ฑฐ
โก๏ธ ๊ฐ์์นด๋ฉ๋ผ + 1
โก๏ธ CarList๊ฐ ๋น ๋๊น์ง ์งํ โผ๏ธ
์ฝ๋
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
public class ๋จ์์นด๋ฉ๋ผ {
public static int solution(int[][] routes) {
int answer = 0;
ArrayList<int[]> carList = new ArrayList<>();
for(int[] r : routes){
carList.add(r);
}
Collections.sort(carList, (a,b) -> a[1] - b[1]);
while(!carList.isEmpty()){
int nowCarExit = carList.get(0)[1];
for(int i = 0 ; i < carList.size() ; i++){
if(carList.get(i)[0] <= nowCarExit){
carList.remove(i);
i--;
}
}
answer++;
}
return answer;
}
public static void main(String[] args) {
int[][] routes = {{-20, -15}, {-14,-5}, {-18,-13}, {-5,-3}};
System.out.println(solution(routes));
}
}