KimMinJun
Coding Note
KimMinJun
전체 방문자
오늘
어제
  • 분류 전체보기 (517)
    • Project (1)
      • blog (1)
    • CS (1)
    • Web (29)
      • Vanilla JS (13)
      • TS (2)
      • React (7)
      • Next.js (5)
      • ETC (1)
    • Docker (14)
    • Git (5)
    • ALGORITHM (11)
      • 정렬 (6)
      • 최단경로 (1)
      • 자료구조 (1)
      • 슬라이딩 윈도우 (1)
      • etc (2)
    • PS (441)
      • 백준 (187)
      • Programmers (114)
      • CodeUp (21)
      • STL (3)
      • 제코베 JS 100제 (50)
      • SWEA (0)
      • LeetCode (65)
    • IT (1)
    • React 공식문서 (번역, 공부) (11)
      • Quick Start (2)
      • Installation (0)
      • Describing the UI (9)
      • Adding Interactivity (0)
      • Managing State (0)
      • Escape Hatches (0)
    • Next.js 공식문서 (번역, 공부) (3)
      • Getting Started (2)
      • Building Your Application (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

인기 글

태그

  • js
  • codeup
  • 정렬
  • Level 0
  • 문자열
  • recursion
  • LeetCode
  • Level1
  • C++
  • Level 1
  • Level 2
  • tree
  • 그래프
  • C
  • 제코베 JS 100제
  • string
  • 다이나믹 프로그래밍
  • programmers
  • 수학
  • 백준

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun

Coding Note

PS/Programmers

Programmers / Level 3 / 단속카메라 / JS

2025. 9. 12. 17:06

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제분석

이 문제는 전형적인 구간 스케줄링 문제이다.

여러 구간이 주어졌을 때, 모든 구간을 커버하는 최소한의 점을 찾는 것과 같다.

 

직관적인 접근법

  1. 차량들의 경로를 구간으로 생각한다.
  2. 겹치는 구간들은 하나의 카메라로 처리가 가능하다.
  3. 겹치지 않는 구간들은 각각 별도의 카메라가 필요하다.

 

풀이

핵심 아이디어: 진출 기점을 기준으로 정렬한 후, greedy하게 카메라 위치를 선택한다.

function solution(routes) {
  routes.sort((a, b) => a[1] - b[1]);
  let cameraCount = 0;
  let cameraPosition = -30001;

  for (const [from, to] of routes) {
    if (from > cameraPosition) {
      cameraPosition = to;
      cameraCount++;
    }
  }

  return cameraCount;
}

 

왜 진출 기점 기준일까?

  • 해당 구간을 반드시 커버해야 한다.
  • 진출 지점에 카메라를 두면, 이후 구간들과의 겹침을 최대화한다.

 

저작자표시 (새창열림)

'PS > Programmers' 카테고리의 다른 글

Programmers / Level 3 / 정수 삼각형 / JS  (0) 2025.09.10
Programmers / Level 2 / 가장 큰 수 / JS  (0) 2025.09.09
Programmers / Level 2 / 양궁대회 / JS  (0) 2025.09.08
Programmers / Level 2 / 전력망을 둘로 나누기 / JS  (0) 2025.09.05
    'PS/Programmers' 카테고리의 다른 글
    • Programmers / Level 3 / 정수 삼각형 / JS
    • Programmers / Level 2 / 가장 큰 수 / JS
    • Programmers / Level 2 / 양궁대회 / JS
    • Programmers / Level 2 / 전력망을 둘로 나누기 / JS
    KimMinJun
    KimMinJun

    티스토리툴바