본문 바로가기
Portpolio/codingtest

프로그래머스 lv3. 단속카메라 java

by Peter Choi 2023. 12. 19.
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/12982

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

import java.util.Arrays;
import java.util.Comparator;

public class Solution {

    public int solution(int[][] routes) {
        // routes 배열을 진출 지점을 기준으로 오름차순 정렬
        Arrays.sort(routes, Comparator.comparingInt(o -> o[1]));

        // 처음 카메라 위치는 맨 처음 차량의 진출 지점에 설치
        int cameraPosition = routes[0][1];

        // 설치된 카메라 수 초기화
        int answer = 1;

        // 다음 차량부터 검사
        for (int i = 1; i < routes.length; i++) {
            // 현재 차량의 진입 지점이 현재 카메라 위치보다 큰 경우
            // 새로운 카메라를 설치하고 카메라 위치를 현재 차량의 진출 지점으로 업데이트
            if (cameraPosition < routes[i][0]) {
                answer++;
                cameraPosition = routes[i][1];
            }
        }

        return answer;
    }
}

 

import java.util.Arrays;
import java.util.Comparator;

public class Solution {

    public static int solution(int[][] routes) {
        // routes 배열을 진출 지점을 기준으로 오름차순 정렬
        Arrays.sort(routes, Comparator.comparingInt(o -> o[1]));

        // 처음 카메라 위치는 맨 처음 차량의 진출 지점에 설치
        int cameraPosition = routes[0][1];

        // 설치된 카메라 수 초기화
        int answer = 1;

        // 다음 차량부터 검사
        for (int i = 1; i < routes.length; i++) {
            // 현재 차량의 진입 지점이 현재 카메라 위치보다 큰 경우
            // 새로운 카메라를 설치하고 카메라 위치를 현재 차량의 진출 지점으로 업데이트
            if (cameraPosition < routes[i][0]) {
                answer++;
                cameraPosition = routes[i][1];
            }
        }

        return answer;
    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        int[][] routes1 = {{-20,-15}, {-14,-5}, {-18,-13}, {-5,-3}};
        System.out.println(solution.solution(routes1));
    }
}
반응형

댓글