칠해야 할 벽면의 위치가 section
array로 주어지면, 크기 m
짜리 롤러로 덧칠하는 데 필요한 최소 횟수를 구하는 문제입니다. 롤러의 오른쪽 끝을 기준으로 잡고, 다음 칠할 section이 그보다 더 오른쪽에 있으면 횟수를 추가했습니다.
class Solution {
public int solution(int n, int m, int[] section) {
int answer = 0;
int rightEndOfRoller = 0;
for (int cur : section) {
if (cur >= rightEndOfRoller) {
rightEndOfRoller = cur + m;
answer++;
}
}
return answer;
}
}