알고리즘/프로그래머스
[프로그래머스] 덧칠하기 - Java
suhaha
2023. 3. 17. 11:20
https://school.programmers.co.kr/learn/courses/30/lessons/161989?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr


예제를 보면 문제를 이해하기 쉽다.
문제는
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;
}
}