function solution(n) {
return n.toString().split("").map(Number).reduce((total, value) => total+value, 0);
// 자연수 n을 문자화 -> 배열화 -> 배열 안을 숫자화 -> 배열 안 숫자 모두 더하기
}
function solution(n) {
let s = String(n).split("").map(Number).sort( (a,b) => b-a).join("");
//정수를 문자화->배열화->배열안을 숫자화-> 내림차순 정렬->문자열화
return Number(s);// 문자열을 다시 숫자로
}
function solution(n) {
let x = 0; // 초기값 선언
for(let i = 1; i <= n; i++) {
if ( Math.pow (i, 2) == n ) {
x = (i+1) * (i+1); // i*i 이 n과 같다면 i는 n의 제곱근
break;
}
}
if (x == 0) { //제곱급이 아니라면 x값이 0이므로 -1을 반환
return -1;
}
return x; //i+1의 제곱을 반환
}
function solution(arr) {
let a = [];
let min = Math.min(...arr); //최소값 찾기
let answer = arr.filter((i) => i !== min);//최소값만 제거
if (answer.length == 0 ) {//빈배열일때 배열 길이는 0
a.push(-1); // 배열에 -1 추가
return a
}
return answer;
}
function solution(n) {
let count = 0;
for (let i = 1; i < 8000000; i++) {
if ( n % 2 === 0) { // n이 짝수 일때
n = n/2;
count ++;
} else if ( n === 1) { //n이 1이면 반복문을 먼춘다.
break;
}
else if ( n !== 1) { //n이 1이 아니고, 홀 수일 때
n= (n*3) +1;
count ++ ;
}
}
if ( count > 500) { // count(작업)가 500번을 넘을 때
return -1
}
return count;
}
function solution(x) {
let arr = x.toString().split("").map(Number).reduce((a,b) => a+b , 0)
//정수x를 문자화->배열화-> 숫자화 -> 원소들의 합
if ( x%arr === 0) { // x를 arr로 나눴을 때 나머지가 0이면 하샤드 수
return true;
} else {
return false;
}
}
7.두 개 뽑아서 더하기
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
function solution(numbers) {
let answer = [];
for (let i = 0; i < numbers.length; i++) {
for (let j= 0; j< numbers.length; j++){
if( i !==j ) { //중첩 반복문에서 i와 j가 같지 않을 때
answer.push(numbers[i]+numbers[j]); // 각각의 요소들을 더해준 값을 배열에 넣는다.
}
}
}
let set = new Set(answer); // 값들을 넣은 배열에 중복 된 수들을 제거해준다.
let arr = [...set]; //객체를 배열화 한다.
return arr.sort((a,b) => a-b); //오름차순 정렬해준다.
}