[CodeKata.js] reduce 배열 합 / 숫자 분리시 문자열로 우선 변환 / 전개연산자(...) / 배열 거꾸로 / Math.pow & sqrt / sort 오름차순
function solution(num) {
let result = (num % 2 === 0) ? "Even" : "Odd";
return result;
}
function evenOrOdd(num) {
return num % 2 ? "Odd" : "Even"
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + evenOrOdd(2));
console.log("결과 : " + evenOrOdd(3));
function solution(n)
{
const answer = String(n).split('').reduce((acc,val)=>acc+Number(val),0)
return answer
}
function solution(n) {
let divisors = [];
for (let i = 0; i <= n; i++) {
if (n % i === 0) {
divisors.push(i);
}
}
let answer = divisors.reduce(function(acc, cur){
return acc + cur;
}, 0);
return answer;
}
더 간결하게 (모범 답안):function solution(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
if (num % i === 0) sum += i
}
return sum
}
function solution(n) {
let x = [];
for (let i = 1; i <= n; i++) {
if (n % i === 1) {
x.push(i);
}
}
return Math.min(...x);
}
여기서 눈여겨 볼 점은 전개 연산자(...)를 사용하여 배열내 객체를 펼쳐 최소값을 찾는 것임.const solution = function(n) {
for (let i=0; i<n; i++){
if (n%i == 1){
return i
}
}
}
function solution(n) {
let answer = [];
let numbers = String(n).split('');
for (let i = numbers.length - 1; i >= 0; i-- ) {
answer.push(Number(numbers[i]));
}
return answer;
}
참고로 문자열로 변환시킬 때 n + " "로도 가능함 (or toString()).function solution(s) {
let answer = Number(s);
return answer;
}
으로 했는데,,, 사칙연산 되면서 문자가 자동으로 숫자로 파싱되게 만드는 방법도 있었음:function strToInt(str){
return str/1
}
function solution(n) {
return Number.isInteger(Math.sqrt(n)) ? Math.pow(Math.sqrt(n) + 1,2) : -1
}
function solution(n) {
let nums = Array.from(String(n), Number);
nums.sort((a, b) => b - a);
let answer = parseInt(nums.join(''));
return answer;
}
벤치마크 (보기 확실히 편함):function solution(n) {
return parseInt((n+"").split("").sort().reverse().join(""));
}
[CodeKata.js] repeat() / includes() / splice(indexOf활용) / join("") (1) | 2024.02.12 |
---|---|
[CodeKata.js] for문 counting / indexOf / filter() (0) | 2024.02.11 |