처음 문제를 보고
check라는 배열을 만들어
색이 있는 부분은 true,
색이 없는 부분은 false
로 만들어줬다.
그 후,
section의 요소 ~ 요소 + m까지 벽을 칠해나가도록
코드를 작성했다.
그런데, 위와 같이 코드를 작성할 경우
check[반복문 index] = true로
색이 없는 부분을 색을 칠해줄 경우
n(벽 개수)를 초과하는 범위의 check 배열이 만들어졌다....
(위의 문제를 해결할려다가 시간을 너무 오래 소모함...)
잘 생각해보니...
반복문을
for(let i = 0; i < check.length; i++)
{
f(!check[i])
{
count++;
i += m - 1
}
}
0 ~ 벽의 개수로 설정하고
벽에 색이 없는 경우
i = i + m - 1로
i를 이동시킨 이후,
그 다음 벽에 색이 없는 곳으로 이동시켜주면
문제를 간단하게 해결할 수 있었다...
제출한 코드 :
function solution(n, m, section) {
let check = new Array(n).fill(true)
section.forEach((element)=>{
check[element - 1] = false
});
let count = 0;
for(let i = 0; i < check.length; i++)
{
if(!check[i])
{
count++;
i += m - 1
}
}
return count;
}
'문제 풀기 > JavaScripts' 카테고리의 다른 글
문제 61. 로또의 최고 순위와 최저 순위(난이도 5) (0) | 2024.08.20 |
---|---|
문제 60. 기사단원의 무기(난이도 5) (0) | 2024.08.20 |
문제 58. 소수 만들기(난이도 10) (0) | 2024.08.19 |
문제 57. 모의고사 완전 탐색 (난이도 7) (0) | 2024.08.19 |
문제 56. 과일 장수(난이도 5) (0) | 2024.08.02 |