Algorithm

덧칠하기 / 프로그래머스

김예나 2025. 3. 3. 00:04

 

정답

  • start + m - 1 을 하면 페인트를 칠할 수 있는 최대 범위의 수가 나옴
  • 칠해야 하는 다음 구역이 해당 최대 범위의 수에 포함된다면 넘어가고 그 수보다 크다면 페인트를 칠하는 횟수를 한번 증가시키고 해당 다음 구역부터 페인트칠 시작
  • section[0]부터 시작하는 것이 핵심
def solution(n, m, section):
    ans = 1
    start = section[0] #페인트 칠하는 시작점
    for i in range(1, len(section)):
        if start + m - 1 < section[i]:
            ans = ans + 1
            start = section[i]
    return ans