seunghyun Note
기사단원의 무기 with JS 본문
728x90
반응형
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/136798
문제 풀이
deep dive
풀이 로직을 완벽히 이해하고 풀었다.
- 약수를 통한 간단한 알고리즘이였고 시간복잡도를 최대한 고려해보려고 하다가 O(N^2)으로 구성해봤다.
- js문법인 map과 forEach 를 통해 순회를 시키고 function을 만들어 캡슐화를 시켰다.
- 따로 예외케이스는 없었다.
예외처리 : x
특이점 : 약수를 구할 때 자기 자신을 제외하고 number/2로 사용해서 시간을 줄여야한다.
function solution(number, limit, power) {
var arr = [];
for (let i = 1; i <= number; i++) {
//divisor function에서 가져온 cnt값을 push를 해준다.
arr.push(divisor(i));
}
//map을 통해 x가 limit보다 크다면 Power를 return을 해준다.
const arr1 = arr.map((x) => {
return x > limit ? power : x;
});
//최종 힘의 크기를 더해서 구해준다.
let sum = 0;
arr1.forEach((element) => {
sum += element;
});
return sum;
}
//약수를 구한다.
//약수를 구할 때 자기 자신에서 2를 나눠서 실행한다.
function divisor(number) {
let cnt = 1;
for (let i = 1; i <= number / 2; i++) {
if (number % i === 0) cnt++;
}
return cnt;
}
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
중성화 여부 파악하기 with Oracle (0) | 2024.05.07 |
---|---|
[프로그래머스] [1차] 캐시 with JS (0) | 2024.02.13 |
[프로그래머스] n^2 배열 자르기 with JS (0) | 2024.01.29 |
[백준] 2164 카드2 with JS (0) | 2024.01.24 |
[백준] 18258번 : 큐 2 with JS (0) | 2024.01.23 |