https://school.programmers.co.kr/learn/courses/30/lessons/161989?language=java
예제를 보면 문제를 이해하기 쉽다.
문제는
n 의 크기를 가진 배열이 주어졌을 때 비어 있는 페인트 부분을 m 의 크기의 롤러로 색칠할 때 최소한의 롤러로 색칠할 수 있는 횟수를 구하는 것이다.
section에 담긴 배열이 비어있는 section 의 위치이다.
예제 그림과는 다르지만 결국 section에 오름차순으로 담긴 영역을 그저 차례대로 롤러로 지나치면 최소한의 갯수가 나온다.
class Solution {
public int solution(int n, int m, int[] section) {
int answer = 0;
int size = section.length; // section 크기
int next = section[0]; // 롤러가 지나갈 다음 자리
int idx = 0; // section idx
while( idx < size ) {
if (next <= section[idx]) {
next = section[idx] + m;
answer++;
}
idx++;
}
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 연속 펄스 부분 수열의 합 (자바) (0) | 2023.04.12 |
---|---|
[프로그래머스] 무인도 여행 (Java) (0) | 2023.03.23 |
[프로그래머스] 호텔 대실 (Java) (0) | 2023.03.20 |
[프로그래머스] 귤 고르기 (0) | 2023.01.03 |
[프로그래머스] 디펜스 게임 (0) | 2023.01.03 |