[99클럽 코테 스터디 9일차 TIL] 그리디

qk·2024년 6월 5일
0

회고

목록 보기
9/33
post-thumbnail

📖 오늘의 학습 키워드
그리디

오늘의 회고

문제

[단속카메라]
https://school.programmers.co.kr/learn/courses/30/lessons/42884

나의 해결

import java.util.*;
class Solution {
    public int solution(int[][] routes) {
        int answer = 1;
        Arrays.sort(routes, (a, b) -> a[1] - b[1]);
        int camera = routes[0][1];
        for(int i = 1; i < routes.length; i++) {
            if(routes[i][0] <= camera) {
                continue;
            }
            camera = routes[i][1];
            answer++;
        }
        return answer;
    }
}
  1. routes 배열을 차량이 고속도로에서 나간 지점을 기준으로 오름차순 정렬한다.
  2. camera를(마지막으로 카메라를 설치한 지점) routes[0][1]로 초기화한다.
  3. routes 배열을 순회하며 routes[i][0](고속도로 진입 지점)이 마지막으로 카메라를 설치 지점보다 크다면 camera 값을 routes[i][1]로 초기화하고 answer(카메라 설치 대수)에 1을 더한다.

새로 학습한 내용

라이브 풀이 세션 중 멘토님께서 Car 클래스를 따로 생성해 차량의 진입/진출 지점을 저장하고 문제를 풀이하신 점이 기억에 남았다. 풀이 로직은 비슷했지만, 말씀하신 것처럼 코딩테스트 중 문제가 발생했을 때 수정할 부분을 파악하는 데 도움이 될 것 같다는 생각이 들었다. 나도 다음에는 이 방법을 활용해 코드를 작성해 봐야겠다.

0개의 댓글