728x90
문제
정답
import java.util.*;
class Solution {
public int solution(int n, int m, int[] section) {
int answer = 0;
int[] paint = new int[n];
for(int s : section) {
paint[s-1] = 1;
}
for(int i = 0; i < paint.length; i++) {
if(paint[i] == 1){
for(int j = 0; j < m; j++) {
if(i + j < paint.length) {
paint[i + j] = 0;
}
}
i = i + m - 1;
answer++;
}
}
return answer;
}
}
처음 for문에서 paint[]에 페인트를 다시 칠해야 하는 구역을 1로 저장합니다.
다음 for문에서 배열 길이 전까지 m만큼 0으로 변경하고 answer를 증가해주는 방법으로 문제를 풀었습니다.
728x90
'프로그래머스 코딩테스트 > JAVA' 카테고리의 다른 글
[프로그래머스] 로또의 최고 순위와 최저 순위 JAVA (0) | 2024.08.20 |
---|---|
[프로그래머스] 기사단원의 무기 JAVA (0) | 2024.08.08 |
[프로그래머스] 소수 만들기 JAVA (0) | 2024.08.08 |
[프로그래머스] 모의고사 JAVA (0) | 2024.08.08 |
[프로그래머스] 과일 장수 JAVA (0) | 2024.08.05 |