본문 바로가기
백준 Algorithm

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

by Echung 2023. 4. 13.

Problem

덧칠하기

 

Solution

 덧필하기는, 정수 n, m과 다시 페인트를 칠하기로 정한 구역들의 번호가 담긴 정수 배열 section 이 매개변수로 주어질 때 롤러로 페인트칠해야 하는 최소 횟수를 리턴해주는 문제이다.

 

 이번 문제는 비교적 간단한 문제였다.

1. 처음 section이 시작되는 위치부터 +m을 한 값까지를 칠해야 하므로 answer = 1로 시작하면서 tempSection은 section [0]을 넣고 시작한다.

2. section의 범위를 반복하면서 tempSection에 범위 m과 -1을 한 값이 section이 넘어가면 페인트를 다시 시작해야하므로, answer++을 해주면서 tempSection을 section으로 다시 초기화해준다.

3. 이렇게 for문을 마무리한 answer값을 출력해 주면 된다.

 

class Solution {
    public int solution(int n, int m, int[] section) {
        int answer = 1;
        int tempSection = section[0];
        
        for (int i = 0; i < section.length; i++) {
            if (tempSection + m - 1 < section[i]) {
                answer++;
                tempSection = section[i];
            }
        }
            
        return answer;
    }
}

사진 1. 실행 결과

 

마치며

  이번 문제는 간단하게 설계를 잘하면 풀 수 있는 문제였다. 혹시 다른 풀이나 더 좋은 방법이 있으면 댓글 남겨주시면 감사하겠습니다 :)

반응형