프로그래머스 코딩테스트/JAVA

[프로그래머스] 덧칠하기 JAVA

Coding-Su 2024. 8. 8. 20:38
728x90

문제

[프로그래머스] 덧칠하기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

정답

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