프로그래머스/Lv.1
코딩테스트 연습 > 덧칠하기 - JAVA
아찌방
2024. 2. 23. 20:23
https://school.programmers.co.kr/learn/courses/30/lessons/161989
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 - 나의 생각
현재 칠해야하는 위치(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