문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
s의 길이는 1 이상 5이하입니다.
s의 맨앞에는 부호(+, -)가 올 수 있습니다.
s는 부호와 숫자로만 이루어져있습니다.
s는 "0"으로 시작하지 않습니다.
입출력 예
예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
Number() 메서드 사용.(parseInt()를 써도 된다.)
function solution(s) {
return Number(s);
}
문자열과 숫자열의 사칙연산은 숫자가 된다는 성질을 이용한 풀이
function solution(s) {
return s/1;
}
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
n은 1이상 8000000000 이하인 자연수입니다.
문자열로 만들어서 배열에 넣고 정렬해서 뒤집은 후 숫자로 바꾸기
function solution(n) {
return (""+n).split('').sort().reverse().join('')/1
}
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
x는 1 이상, 10000 이하인 정수입니다.
arr return
10 true
12 true
11 false
13 false
메서드를 이용해 각 자릿수의 합을 구해서 나누어 떨어지는지 체크했다.
function solution(x) {
let add_digit = (x+"").split('').reduce((acc,cur) => acc + Number(cur),0);
return x % add_digit ? false : true;
}
숫자로 바꿀 때 Number() 대신 연산자를 이용할 수 있고, 삼항연산자 대신 !를 이용해 나머지가 0이 되면(나누어 떨어지면) !0인 true로, 나머지가 1이 되면 !1인 false로 바꾸어 결과를 구할 수 있다.
function Harshad(n){
return !(n % (n + "").split("").reduce((a, b) => +b + +a ));
}
실행 속도는 이 방식이 더 빠르다.
function solution(x) {
let num = x;
let sum = 0;
do {
sum += x%10;
x = Math.floor(x/10);
} while (x>0);
return !(num%sum);
}
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
3 ≤ n ≤ 1,000,000
2부터 n-1까지 순서대로 나누며 나머지가 1이 되면 break
function solution(n) {
let answer = 0;
for(let i=2;i<n;i++){
if(n%i === 1){
answer = i;
break;
}
}
return answer;
}
break 하지 않고 바로 return 해도 된다!
function solution(n) {
for(let i=2;i<n;i++){
if(n%i === 1){
return i;
}
}
}