오.. 각 자리의 수를 어떻게 나누지?.. 숫자를 숫자로 안보고 문자로 본다면 분해만 해줘도 되지 않을까!?
🎈 내가 생각한 방법
1. 매개변수 n 을 문자형으로 바꿔준다
2. spread 로 펼쳐준다.
3. 반복문으로 모든 숫자의 합을 더해준다.
4. 반환한다.
이렇게 작성해보았는데, 아차.. 문자열로 바꿔준 숫자 목록들을 그대로 더하니 저렇게 나왔다.
전개구문으로 담아줄 때에 숫자로 형변환을 해주어야한다.!
담아줄 때 형 변환 하는 방법은 모르겠어서 배열에 담은 것을 반복문 돌려 형변환을 시켜주었다.
그런데 결과값은 여전히 형 변환이 되지 않았다.... 왜지?
곱하기 1을 해서 암시적 형 변환이 안되어서 Number() 로 명시적 형변환을 시도해보았다
여전히 안된다 왜지???????????
5번 줄과 6번 줄을 합치라는 동기님의 조언을 듣고 작성해보았다. 야호!
맨 위 코드에서 형 변환이 되지 않았던 이유는 나중에 추가하도록 하겠다.
값을 받는? 친구가 없어서 안됐던것이다... 담아줬어야 했음 !!!
🎈 reduce 를 사용한 풀이
🎈 숫자 => 문자로 형 변환
- toString() 메서드
const str = number.toString();
console.log(typeof(str));
// String
- String
const str1 = String(number);
console.log(typeof(str1));
// String
- 빈 문자열 붙히기
const str3 = number + "";
console.log(typeof(str3));
// String
- 템플릿 문자열 Template String
const str4 = `${number}`
console.log(typeof(str4));
// String
🎈 숫자 => 문자로 형 변환
- Number()
const num = Number("String");
console.log(typeof(num));
// Number
- parseInt() : 정수로 형변환
const num1 = parseInt("123.12");
console.log(num1);
// 123
console.log(typeof(num1));
// Number
- Math.ceil() : 올림
const num2 = Math.ceil("123");
console.log(num2);
// 123
console.log(typeof(num2));
// Number
- Math.floor() : 내림
const num3 = Math.floor("123.53");
console.log(num3);
// 123
console.log(typeof(num3));
// Number
- Math.abs() : 절대값
const num4 = Math.abs("123");
console.log(num4);
// 123
console.log(typeof(num4));
// Number
🎈 전개구문 spread syntax
점 세개 (...) 가 이어진 연산자를 통해 사용된다. 배열, 문자열과 같은 반복 가능한 요소 앞에 사용해서 배열의 개별 요소를 다른 배열이나 함수의 인자로 펼쳐서 넘길 수 있다.
{...obj}
[...arr] / {...arr}
- 문자열을 배열로 만들기
let str = "string";
let arrStr = [ ...str ];
console.log(arrStr);
// [s, t, r, i, n, g]
- 배열 합치기
let arr1 = [1, 2, 3];
let arr2 = [0, ...arr1, 4];
console.log(arr2);
// [0, 1, 2, 3, 4]
- 배열 연결하기
let arr1 = [a, b, c];
let arr2 = [d, e];
array1.push(...arr2);
console.log(arr1);
// [a, b, c, d, e]
- 객체 합치기
let obj1 = { a: 'A', b: 'B' };
let obj2 = { c };
let obj3 = { ...obj1, ...obj2 };
console.log(obj3);
// { a: 'A', b: 'B', c: 'C', d: 'D' }
'코딩테스트' 카테고리의 다른 글
코딩테스트 풀이 - 모음 제거 | 정규표현식 (0) | 2023.10.27 |
---|---|
코딩테스트 풀이 - 특정 문자 제거하기 | replace(), replaceAll() (0) | 2023.10.26 |
코딩테스트 풀이 - 삼각형의 완성조건 (1) | sort 로 내림차순 만들기 (0) | 2023.10.25 |
코딩테스트 풀이 - 최댓값 만들기 (1) | 배열 오름차순, 내림차순 sort() (0) | 2023.10.24 |
코딩테스트 풀이 - 짝수 홀수 개수 | forEach문, 삼항연산자 (0) | 2023.10.23 |