https://school.programmers.co.kr/learn/courses/30/lessons/161989
풀이 - 나의 생각
현재 칠해야하는 위치(wall)가
현재 롤러의 위치(index)보다 크거나 같을 경우,
이 말은
새롭게 페인트를 칠해야한다는 말과 같습니다.
그렇기에 cnt를 +1 해주고
롤러의 위치(index)를 wall + m을 통해
페인트를 칠한 후의 위치로 옮겨 주면 됩니다.
그리고 롤러의 위치가 주어진 벽의 길이(n)를 넘어선다면
모든 벽을 칠한 것이기 때문에 break해주어 빠르게 끝내면 됩니다.
코드
class Solution {
public int solution(int n, int m, int[] section) {
int index = 0, cnt = 0;
for(int wall : section){
if(index <= wall){
cnt++;
index = wall + m;
}
if(index > n) break;
}
return cnt;
}
}
728x90
'프로그래머스 > Lv.1' 카테고리의 다른 글
문자열 내 p와 y의 개수 - JAVA (0) | 2024.05.23 |
---|---|
코딩테스트 연습 > 푸드 파이트 대회 - JAVA (문자열 뒤집기) (0) | 2024.02.24 |
코딩테스트 연습 > 월간 코드 챌린지 시즌2 > 약수의 개수와 덧셈 (제곱근 Math.sqrt) (0) | 2024.02.22 |
코딩테스트 연습 > 약수의 합 - JAVA (0) | 2024.01.16 |
코딩테스트 연습 > 이상한 문자 만들기 - JAVA > 실패 해결 (0) | 2024.01.16 |