220304 금 Algorithms TIL

bongf·2022년 3월 4일
0

알고리즘TIL

목록 보기
64/153

프로그래머스 카카오 고득점 kit - 탐욕법(greedy)

단속카메라

  • 문제
  • 코드
  • 아래와 같이 풀려고 했는데 기준이 애매했다. 겹치는 자동차의 순서가 똑같다면 우선순위를 어떻게 할 것인가?
    6만의 도로 번호 각각은 구조체로 만든다
    각 도로 번호는 자동차 번호를 set으로 갖고 있다
    cnt 값도 갖고 있다 cnt는 자동차의 수
    compare를 cnt 기준으로 한다 ~~
    ~~그리 가장 자동차 수가 많은 것을 빼고

    모든 도로에 대해 해당 자동차를 빼주고
    다시 sort를 해준다.
  • 다른 분의 풀이를 보고 푸는 방법을 알게 되었다.
    • routes를 진입지점을 기준으로 sort 한다.
    • 앞에서부터 하나씩 하는 과정
    • route 들을 하나씩 확인하면서 앞선 route의 범위에 들지 않으면 새로운 카메라를 설치하는 방식이다
    • 주의할 것은 이번차례에 확인하는 route의 end점이 기준으로 잡은 end 점보다 더 작으면 end점을 더 작은 값으로 갱신해 줘야 한다는 것이다.
    • 예를 들어 이렇게 있을 때는 1의 end 점으로 3은 커버할 수 있지만 2는 커버할 수 없다
  • 프로그래머스에서 제공된 다른 분들 풀이 를 보고 end점을 기준으로 잡으면 더 단순하게 풀 수 있다는 것을 알게되었다. 이를 활용해 java를 풀었다
    • end점을 기준으로 sort한다.
    • end점에 카메라를 설치한다고 생각한다
    • 하나씩 확인하면서 route의 start가 end 점 보다 크다면 카메라를 새로운 route의 end점에 추가한다고 생각하면 된다
profile
spring, java학습

0개의 댓글