🌟 = 내가 생각한 난이도있는 풀이
1. 평균 구하기
2. 자릿수 더하기 1레벨
3. 나머지가 1이 되는 수 찾기 1레벨
4. x만큼 간격이 있는 n개의 숫자 1레벨
5. 자연수 뒤쥐어 배열로 만들기 1레벨
function solution(arr) {
var answer = 0;
let sum = 0;
for (let i = 0; i < arr.length; i++){
sum = sum + arr[i];
}
return answer = sum / arr.length;
}
sum = 0
값을 주는걸 잊지말자 초기값이 있어야 작동한다고 !function solution(arr) {
var answer = 0;
return arr.reduce((a, b) => a + b) / arr.length;
// return arr.reduce((sum누적값, current현재값) => sum + current) / arr.length;
}
function solution(arr) {
var answer = 0;
arr.forEach((a) => {
answer += a;
})
return answer / arr.length;
}
function solution(n)
{
var answer = 0;
let m = String(n);
for (let i = 0 ; i < m.length ; i++){
answer = answer + parseInt(m[i]); // Number() 도 가능
}
return answer;
}
let m = String(n);
변수 m에 자연수 n를 문자열로 선언한다.parseInt(m[i])
로 문자열을 숫자형으로 바꿔줘서 출력한다.Number()
도 가능 !!function solution(n) {
var answer = 0;
n = n.toString().split('')
n.forEach((a) => {
answer += Number(a)
})
return answer;
}
function solution(n){
return n.toString().split('').reduce((prev, cur) => prev + parseInt(cur), 0);
// parseInt로 문자열에서 숫자열로 바꿔준다. cur * 1 도 * 연산자가 형변환을 해주니 사용가능.
}
.split('')
를 사용하여 문자열 배열의 요소를 ' ' 따옴표로 감싸서 분리한다..reduce()
로 더한값을 출력한다. cur또한 숫자형으로 바꿔줘야 값이 도출되니 parseInt()
로 감싸주거나,(0, cur)
이라는 소리다.function solution(n) {
let answer = 0;
for (let i = 0; i < n; i++) {
if(n % i == 1) {
answer = i;
break;
}
}
return answer;
}
break
문은 실전에선 처음 사용해봤는데, 최소값을 위한 장치로 이용됬다. n의 값이 나머지 1이 나오는경우가 여러개 나올 수 있으므로, i=0으로 시작되서 늘어나니 가장처음 조건에 맞는 값이 나오면 break
문으로 닫히면서 최소값이 출력된다.function solution(n) {
var answer = 0;
for(let x = 0; x <= n; x++) {
if (n % x == 1) return x;
}
}
function solution(x, n) {
var answer = []; // 결과를 저장할 빈 배열
for (let i = 1; i <= n; i++) {
answer.push(x*i) // x에 i를 곱한 값을 결과 배열에 추가
}
return answer; // 완성된 결과 배열을 반환
}
// x = 2
// i = 1 -> 2
// i = 2 -> 4
// i = 3 -> 6
// i = 4 -> 8
// i = 5 -> 10
// .push()는 직접 배열에 값을 추가하는 기능
// n개 만큼 지니는 리스트라는 의미에서 length를 구해야되는지 헷갈림
.push()
를 이용해서 배열에 직접 값을 추가하는걸 잘 생각해내보자.function solution(n) {
var answer = [];
let m = String(n).split('').reverse();
for(let i = 0; i < m.length; i++){
answer.push(parseInt(m[i]));
}
return answer;
}
string()
을 통해서 문자열로 바꿔주고, split('')
로 각각의 원소를 하나하나 빼서 분리한 다음 .reverse
로 뒤집어주었다. push 할 때는 숫자형으로 변환뒤에 !function solution(n) {
var answer = [];
n = n.toString().split('')
n.forEach((n) => {
answer.push(Number(n))
})
return answer.reverse();
}
reverse()
는 마지막에 넣어도 되지만, 처음부터 지정할수 있다면 명시해두는게 더 내 스타일같다. 일단 Number()
와 parseInt()
의 짧은 차이점은 소주점을 가져오고, 안가져오고 차이정도로만 알고싶다..