본문 바로가기
알고리즘

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

by 창따오 2024. 1. 9.
728x90

 

 

구현 문제는 어떻게 접근을 하는 것이 좋을까? 

1. 구현이라는 것은 컴퓨터가 어떻게 나의 생각을 이해하여 동작하도록 할 것인가에 초점을 맞추는 거지 않을까? 

이문제에서 curWall이라는 변수를 둘 것인데 이것은 현재 벽까지 색칠되었다는 인덱스 정보를 저장한다.

아래에서  소스코드를 보자

class Solution {
    public int solution(int n, int m, int[] section) {
        int answer = 0;
        int curWall = 0;
        
            for(int i=0;i<section.length;i++){
                if(curWall<section[i]){
                    answer++;//색칠
                    curWall=section[i]+m-1;// 현재까지 색칠된 벽의 Index
                }
               
                
            }
         return answer;
        }
       
    }

간단하다. 하지만 어려운 구현을 하기위해 꼭 숙지해야 할 기초적인 요소들을 가지고 있다. 

1. 컴퓨터에게 현재 색칠된 부분까지의 인덱스를 어떻게 알게할까?

2. 색칠한 부분은 어떻게 표현할까? (이 문제에서는 필요없음) 하지만 알고리즘 문제를 풀기 위해선 꼭 고려해줘야 할 부분임.