연습장

12. 덧칠하기 본문

프로그래머스/1단계

12. 덧칠하기

js0616 2023. 12. 16. 17:11

 

 

n 은 전체 벽의 갯수

m 은 룰러의 길이

section 은 빈곳 (칠해야 되는곳)

result 는 룰러 횟수

 

1번 예시를 보면 2 3 6 을 칠하기 위해서 길이 4 짜리 룰러로 총 2번 해야된다 라는 뜻입니다. 

 


 

만약 다음과 같은 예시 n = 8, m = 3 , section = [1,3,5,7]  의 경우

 

 

1-3 , 5-7의 영역을  총 2번 칠하게 된다.

 

즉, 붓이 시작하는 지점이 어디이며 몇번 칠하는지 구하면 된다.

 

1회 : 시작 1 -> 끝 3 

2회 : 시작 5 -> 끝 7

 


def solution(n, m, section):
                
    # 처음 1회 시작
    start = section[0]
    end = start - 1 + m
    answer = 1
    
    # section 의 원소값에 따라
    for area in section:
        
        # end 보다 클 경우 다음 시작점이 된다.
        if area > end :
            start = area
            end = start - 1 + m
            answer +=1  # 시작점의 갯수만큼 벽을 칠한다고 볼 수 있다.

    return answer

'프로그래머스 > 1단계' 카테고리의 다른 글

14. 둘만의 암호  (0) 2024.01.17
13. 실패율  (0) 2023.12.16
11. 소수 찾기  (1) 2023.12.15
10. 카드 뭉치  (0) 2023.12.15
9. 완주하지 못한 선수  (0) 2023.12.14