https://school.programmers.co.kr/learn/courses/30/lessons/161989
알고리즘 구조를 짜는 것 자체가 어려웠던 문제이지만
indexOf와 every 그리고 fill함수에 대해 익숙해질 수 있었다.
최종 풀이
function solution(n, m, section) {
let answer = 0;
let arr = new Array(n).fill(1)
section.forEach(a=>{arr[a-1]=0})
while(!(arr.every(a=>a===1))) {
arr.splice(arr.indexOf(0), m, ...new Array(m).fill(1))
answer++;
}
return answer
}
문제에서 주어지는 담장과 유사한 Array를 하나 만들었다.
그리고 칠한 부분은 1, 벗겨진 부분은 0으로 구분한 뒤
splice 함수를 이용하여 array의 특정 부분을 교체할 수 있었다.
다른 사람의 풀이
function solution(n, m, sections) {
var answer = 0;
var painted = 0;
for(var section of sections) {
if(painted < section) {
answer++;
painted = section+m-1;
}
}
return answer;
}
정말 깔끔하고 가독성 좋은 코드라고 생각한다.
성능이나 로직 면에서도 뛰어난 코드여서 많이 배워간다.
기하(공간) 문제를 수식으로도 접근해보자.
'Coding Test' 카테고리의 다른 글
[JS] 프로그래머스 / 바탕화면 정리 (0) | 2024.12.23 |
---|---|
[JS] 프로그래머스 / 대충 만든 자판 (0) | 2024.12.21 |
[JS] 프로그래머스 / <PCCP 기출문제> / 1번 - 동영상 재생기 (0) | 2024.12.16 |
[JS] 프로그래머스 / 푸드 파이트 대회 (0) | 2024.12.14 |
[JS] 프로그래머스 / 크기가 작은 부분 문자열 (0) | 2024.12.13 |