-
[문제풀이 후기] 프로그래머스 #161989 - 덧칠하기문제풀이/Programmers 2026. 4. 1. 20:41
https://school.programmers.co.kr/learn/courses/30/lessons/161989
기본 상위 코드
const [n, m, section] = [10, 3, [1, 3, 6, 7]];첫 번째 시도 (결과 : 실패)
접근 방식
1. 시작 지점은 반드시 덧칠 → 기본 count = 1
2. 덧칠하고 난 뒤의 시작 지점 = 시작 지점 + m
3. 시작 지점이 section 의 마지막 요소보다 크면 종료let [paintStart, count] = [section[0] + m, 1]; for (; paintStart <= section[section.length - 1]; paintStart += m) { console.log("before =>", paintStart, count); count++; console.log("after =>", paintStart, count); } return count;실패 원인 : 원인
section 의 요소 간의 gap 이 m 보다 큰 경우에도 count 가 증가함 (반례 : [1, 3, 6, 7] → 3)
두 번째 시도 (결과 : 성공)
접근 방식
1. 시작 지점이 아닌 끝 지점을 기준으로 설정
2. section 의 요소 > 끝 지점인 경우 덧칠 후 count 증가let [paintedEnd, count] = [0, 0]; for (let i = 0; i < section.length; i++) { if (section[i] > paintedEnd) { paintedEnd = section[i] + m - 1; count++; } } return count;'문제풀이 > Programmers' 카테고리의 다른 글
[문제풀이 후기] 프로그래머스 #12977 - 소수 만들기 (0) 2026.04.07 [문제풀이 후기] 프로그래머스 #12921/#120846 - 소수 찾기/합성수 찾기 (0) 2026.04.07 [문제풀이 후기] 프로그래머스 #135808 - 과일 장수 (0) 2026.04.01 [문제풀이 후기] 프로그래머스 #17681 - [1차] 비밀지도 (0) 2026.03.13 [문제풀이 후기] 프로그래머스 #159994 - 카드 뭉치 (0) 2026.03.13