Q. 자릿수 더하기
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
🚫제한 사항
0 ≤ n ≤ 1,000,000
❗입출력 예
n | result |
1234 | 10 |
930211 | 16 |
😀 내가 푼 답
function solution(n) {
return n
.toString()
.split("")
.map((idx) => parseInt(idx))
.reduce((acc, cur) => acc + cur);
}
- parseInt()
- 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환함
- parseInt() 함수를 사용하는 주요 목적은 문자열에서 숫자를 추출하기 위함 => 입력받은 문자열을 숫자값으로 바꾸어 변환함
- 문자열의 첫글자가 숫자이고, 그 이후에 숫자가 아닌 다른 문자열이 나올 경우, 숫자가 아닌 문자 이후의 값은 무시하고 그 이전의 숫자만 정수로 리턴함
- 문자열의 첫글자가 숫자가 아니면, NaN을 리턴
- 문자열에 공백이 입력된면 문자열의 첫 글자가 숫자가 아니므로, NaN을 리턴함
- 문자열의 첫글자는 반드시 숫자여야 하지만, 처음에 오는 공백 문자는 허용됨
문자열의 첫글자가 숫자이면, 뒤에 오는 공백은 무시됨
- Number()
- 숫자 값으로 작업할 수 있게 해주는 Object 객체. 객체는 생성자를 사용하여 만들고, 원시 숫자 자료형은 함수를 사욯해 생성함.
- 문자열을 숫자열로 형변환시 일반적인 숫자형태를 가지고 있는 값들은 그대로 출력됨(음수 포함)
공백일 경우 0으로 출력됨
😊 문제풀이 답안 OR 다른사람들 답안
function solution(n) {
let sum = 0
let s = n.toString()
for (i=0; i<s.length; i++){
sum += Number(s[i])
} return sum
}
Q. 순서쌍의 개수
순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
🚫제한 사항
0 ≤ n ≤ 1,000,000
❗입출력 예
n | result |
20 | 6 |
100 | 9 |
😀 내가 푼 답
function solution(n) {
let arr = [];
for (let i = 0; i <= n; i++) {
n % i === 0 ? arr.push(i) : 0;
}
return arr.length;
}
😊 문제풀이 답안 OR 다른사람들 답안
function solution(n) {
let ans = 0;
for (let i = 1; i < Math.sqrt(n); i++)
if (n%i === 0) ans+=2;
return Number.isInteger(Math.sqrt(n)) ? ans+1 : ans;
}
- isInteger()
- Number.isInteger() 메소드는 인수의 값이 정수인지 아닌지를 리턴함
- 전달된 값이 정수이면 true, 아니라면 NaN, Infinity 와 같은 값들은 모두 false를 리턴함
- sqrt()
- Math.sqrt() 메소드는 함수 인자로 값을 넘겨주면 루트 값을 리턴함
- 매개변수가 음수이면 NaN을 리턴함
Q. 개미 군단
개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.
🚫제한 사항
hp는 자연수입니다.
0 ≤ hp ≤ 1000
❗입출력 예
hp | result |
23 | 5 |
24 | 6 |
999 | 201 |
😀 내가 푼 답
function solution(hp) {
return (
Math.floor(hp / 5) + Math.floor((hp % 5) / 3) + Math.floor((hp % 5) % 3)
);
}
😊 문제풀이 답안 OR 다른사람들 답안
function solution(hp) {
let cnt = 0;
[5,3,1].forEach(v => {
cnt += Math.floor(hp/v);
hp = hp % v;
})
return cnt;
}
Q. 숨어있는 숫자의 덧셈(1)
문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
🚫제한 사항
1 ≤ my_string의 길이 ≤ 1,000
my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.
❗입출력 예
my_string | result |
"aAb1B2cC34oOp" | 10 |
"1a2b3c4d123" | 16 |
😀 내가 푼 답
function solution(my_string) {
let result = 0;
my_string
.split("")
.map((idx) => (!isNaN(idx) ? (result += parseInt(idx)) : 0));
return result;
}
😊 문제풀이 답안 OR 다른사람들 답안
function solution(str) {
let arr1 = []
for (i=0; i<str.length; i++) {
arr1.push(Number(str[i]))
}
let arr2 = arr1.filter(Boolean)
return arr2.reduce((a,b)=>a+b)
}
Q. 문자열 정렬하기 (1)
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.
🚫제한 사항
1 ≤ my_string의 길이 ≤ 100
my_string에는 숫자가 한 개 이상 포함되어 있습니다.
my_string은 영어 소문자 또는 0부터 9까지의 숫자로 이루어져 있습니다.
❗입출력 예
my_string | result |
"hi12392" | [1, 2, 2, 3, 9] |
"p2o4i8gj2" | [2, 2, 4, 8] |
"abcde0" | [0] |
😀 내가 푼 답
function solution(my_string) {
let result = 0;
my_string
.split("")
.map((idx) => (!isNaN(idx) ? (result += parseInt(idx)) : 0));
return result;
}
😊 문제풀이 답안 OR 다른사람들 답안
function solution(my_string) {
var answer = [];
for (i = 0; i < my_string.length; i++) {
!isNaN(my_string[i]) ? answer.push(Number(my_string[i])) : 0;
}
return (answer.sort((a, b) => a - b));
}