삼각형 완성조건 (2 - 프로그래머스)
function solution(sides) {
return Math.min(...sides)*2-1;
}
Array 의 "every"
some 과 반대
로 모두 조건에 만족하면 trueconst nums = [5, 6, 7, 8];
console.log(nums.every((v) => v > 7)); // false
console.log(nums.every((v) => v > 4)); // true
저주의 숫자3 ( 프로그래머스 )
const dp = Array.from({length : 101}, (_,i) => i);
const answer = dp.filter((num) => num % 3 !== 0 && !num.toString().includes("3"));
return answer[n-1];
겹치는 선분의 길이 ( 프로그래머스 )
function solution(lines) {
let line = new Array(200).fill(0);
lines.forEach(([a, b]) => {
for(; a < b; a++) line[a+100]++;
});
return line.reduce((a, c) => c > 1 ? a + 1 : a, 0);
}
유한소수 판별
function solution(a, b) {
var answer = 1;
let gcd = 1;
for(let i=2; i<=Math.min(a, b); i++){
if(a % i === 0 && b % i === 0){
gcd = i;
}
}
const next_a = a / gcd;
const next_b = b / gcd;
for(let i=2; i<=next_b; i++){
if(next_b % i === 0 && !(i % 2 === 0 || i % 5 ===0) ) {
answer = 2;
break;
}
}
return answer;
}
Array 의 "map" 주의사항
.map()
은 정의된 값에만 동작Array(3).map((_, idx) => idx); // [undefined, undefined, undefined]
[...Array(3)].map((_, idx) => idx); // [0, 1, 2]
디스트럭처링을 사용하여 map 을 사용하는 이유
간단히 말해, [...Array(n)]을 사용하는 이유는
길이가 n인 배열을 생성하고 이 배열의 각 요소를
"정의된" 상태로 만들어 .map() 등의
배열 메서드를 사용할 수 있게 하기 위함