안녕하세요
프로그래머스 JS [덧칠하기] 본문
덧칠하기 문제보기
문제 요약
n미터인 벽을 m길이의 페인터로 칠하는 최소한의 횟수를 구하시오.
문제 조건
각 구역에 왼쪽부터 순서대로 1번부터 n번까지 번호
벽에 페인트를 칠하는 롤러의 길이는 m미터
롤러가 벽에서 벗어나면 안 됩니다.
구역의 일부분만 포함되도록 칠하면 안 됩니다.
페인트칠을 하는 횟수를 최소화
정수 n, m과 다시 페인트를 칠하기로 정한 구역들의 번호가 담긴 정수 배열 section
문제 풀이
function solution(n, m, section) {
section.reverse();
let count = 0;
while (section.length) {
const currentSwipe = section[section.length - 1] + m - 1;
count++;
while (section[section.length - 1] <= currentSwipe) {
section.pop();
}
}
return count;
}
pop으로 칠한 영역을 제외하기 위해 section을 reverse합니다.
section.reverse();
count로 칠한 횟수를 세립니다.
let count = 0;
section의 길이가 남아 있지 않을 때까지 실행합니다.
while (section.length) {
현재 칠하기 시작하는 영역 + 페인터의 길이에 포함되는 영역을 pop으로 제외합니다.
const currentSwipe = section[section.length - 1] + m - 1;
count++;
while (section[section.length - 1] <= currentSwipe) {
section.pop();
}
}
'프로그래머스 > Lv.1' 카테고리의 다른 글
프로그래머스 JS [달리기 경주] (0) | 2023.05.08 |
---|---|
프로그래머스 JS [대충 만든 자판] (0) | 2023.05.08 |
프로그래머스 JS [추억 점수] (0) | 2023.04.12 |
프로그래머스 JS [둘만의 암호] (6) | 2023.02.03 |
프로그래머스 JS [신고 결과 받기] (0) | 2023.02.03 |