프로그래머스 알고리즘/2단계
(프로그래머스 JS)덧칠하기
naeunchan
2023. 3. 14. 22:28
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/161989
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제를 단순하게 접근하면 된다.
section에 있는 범위만 덧칠하면 되기 때문에 greedy하게 접근한다.
우선 start 변수를 선언하여 section의 마지막 원소를 가져온다.
한번 덧칠하는 단계이기 때문에 answer = 1이며, 이 start에서 m 만큼 이동한다.
while문으로 section을 비울 때까지 반복
현재 위치를 section.pop()을 이용해 가져오며,
만약 current가 start보다 크다면 이미 덧칠한 부분이기 때문에 continue로 넘어간다.
그렇지 않다면 덧칠을 current에서 시작해야 하며, 이 위치에서 m 만큼을 덧칠한다.
그리고 answer++을 하여 카운팅.
답을 리턴하면 된다.
function solution(n, m, section) {
let answer = 1;
let start = section.pop();
start -= m;
while(section.length) {
const current = section.pop();
if(current > start) {
continue;
}
start = current - m;
answer++;
}
return answer;
}
728x90
반응형