728x90
[문제]
[풀이 코드]
function solution(n, m, section) {
var answer = 1;
let drawsection = section[0];
for(let i = 1; i < section.length; i++){
if(section[i] - drawsection >= m ){
drawsection = section[i];
answer++;
}
}
return answer;
}
[해설]
우선 drawsection이라는 변수를 만들어 첫번째로 색칠할 장소인 section[0]에 담고, 처음 칠을 하기 때문에, answer 값을 1을 주고 시작한다. for문으로 section의 length까지 돌고, section[0]의 정보는 이미 들고 있기 때문에 자기 자신을 제외한 section[1]부터 section[section.length] 까지의 길이중 section[i] - drawsection 의 값이 룰러의 길이 m보다 길 경우 한번에 색칠하지 못하기 때문에 해당위치에서 또 색칠을 해야한다. 그렇기 때문에 answer을 +1해주고 drawsection의 위치 값을 section[i] 번째로 바꿔주고 다시 해당 위치에서 덧칠을 시작한다고 생각하면된다! 생각보다 초기에 생각할게 많았는데 함수에서 받아오는 n을 안쓰고 잘 문제를 푼 것같다.
'코딩 > 코딩테스트' 카테고리의 다른 글
[프로그래머스/JS] 로또의 최고순위와 최저순위 (0) | 2024.06.25 |
---|---|
[프로그래머스/JS] 기사단원의 무기 (0) | 2024.06.24 |
[프로그래머스/JS] 소수 만들기 (0) | 2024.06.20 |
[프로그래머스/JS] 과일장수 (0) | 2024.06.18 |
[프로그래머스/JS] 카드뭉치 (0) | 2024.06.17 |