본문 바로가기

그리디2

[프로그래머스] Lv.2 요격시스템 JAVA 풀이 문제 Lv.2 요격시스템 : 여러 개구간 x좌표가 있다 이들을 모두 한번씩 관통해야 한다 최소한으로 쏠 수 있도록 최대한 겹쳐 미사일을 쏜다 ▶ targets = [ 1, 4 ], [ 3, 7 ], [ 4, 5 ], [ 4, 8 ], [ 5, 12 ], [ 10, 14 ], [ 11, 13 ] : targets 는 미사일 좌표 범위 좌표는 x좌표로만 이루어져 있고 [s,e] 로 표현 가능 이때, [s,e]는 개구간이다 (즉, 시작지점과 끝지점 미포함) [문제 방식] 1. 끝지점을 기준으로 잡아서 오름차순으로 정렬하고 시작 2. 현재 구간의 끝지점과 다음 타겟의 시작점이 겹치지 않는 순간 count 더 이상 겹칠게 없기 때문에 다음 좌표들의 미사일 쏘고 구간 계산 (이해중요! 일단은 미사일 먼저 쏴놓고 구.. 2023. 8. 28.
[프로그래머스] Lv.1 덧칠하기 JAVA 풀이 문제 Lv.1 덧칠하기 : 페인트가 비어있는 section 부분의 벽을 덧칠해야한다 롤러의 길이만큼 칠할 수 있고 페인트 덧칠을 최소한으로 측정해 덧칠 횟수를 출력 한다 : n은 벽 길이 m은 롤러 길이 section은 칠해야 할 벽 부분 (예시) n = 5, m = 4, section = {1, 3} 1 2 3 4 5 출력 : 1번째 덧칠 (1 ~ 4 까지 덧칠) 2번째 덧칠 (2 ~ 4 까지 덧칠) return 값 = 2 [코드] class Solution { public int solution(int n, int m, int[] section) { int result = 0; int start = 1; for (int i = 0; i < section.length; i++) { if (start 2023. 8. 24.