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

hhkim·2023년 7월 7일
0

Algorithm - JavaScript

목록 보기
57/188
post-thumbnail

풀이 과정

  1. 덧칠을 완료한 마지막 구역의 번호인 last를 0으로 초기화
  2. sections 배열을 돌면서 반복: forEach()
  3. 각 구역이 1보다 크면 한 번 칠한 것이므로 ++result
    이때 마지막 구역 번호 갱신

코드

function solution(n, m, section) {
  let result = 0;
  let last = 0;
  section.forEach((s) => {
    if (s > last) {
      ++result;
      last = s + m - 1;
    }
  });
  return result;
}

🦾

처음에 예시만 보고 최댓값과 최솟값을 구해서 롤러로 나누는 단순한 방식으로 짰다가 칠해야 하는 구역이 롤러의 길이보다 크게 떨어져 있으면 안 된다는 걸 알고 고쳤다.
이렇게 확인해야 하는 모든 값들을 하나하나 보는 걸 그리디라고 하는 것 같다..!

0개의 댓글