20230825 금요일
스트레칭을 생활화 해야 할 것 같다.
의자에서 일어나다 허리가 삐었다...
병원비 246,000원 😇
오늘 풀어본 문제
https://school.programmers.co.kr/learn/courses/30/lessons/120906
입출력 예 #1
1 + 2 + 3 + 4 = 10을 return합니다.
입출력 예 #2
9 + 3 + 0 + 2 + 1 + 1 = 16을 return합니다.
function solution(n) {
if (n < 0 || !Number.isInteger(n)) {
return "양수를 입력하세요";
}
let sum = 0;
// n을 문자열로 변환하여 자릿수를 반복
const numStr = n.toString();
// digit에 numStr[i]를 정수로 변환해 할당
for (let i = 0; i < numStr.length; i++) {
const digit = parseInt(numStr[i]);
sum += digit;
}
return sum;
}
function solution(n){
return String(n).split('').reduce((acc, cur) => acc + cur * 1, 0);
}
// 1. n을 String을 이용해 문자열로 변환
// 2. split('')을 이용해 개별 문자 배열로 분할
// 3. 'reduce'는 배열의 각 요소를 반복적으로 처리하고 최종 결과를 누적하는 데 사용
// acc 는 초기값 0 으로 설정 되고 cur은 현재 처리중인 요소이며 한 자리 숫자를 문자열로 나타냄.
//acc + cur * 1은 누산기와 현재 숫자의 합을 계산하고 * 1을 사용하여 문자열의 cur를 숫자 값으로 변환
다른사람이 푼 문제풀이를 보고 주석을 달아보았다.
처음에 for문으로 풀어보고 싶어서 for문을 시도했는데 생각처럼 안되었다.
자릿수를 찾아 더해주는 것이기 때문에 문자열로 변환 한 후 더해주어야 했다.
자릿수를 더할때는 문자열로 변환 후 답을 구해야 하는 것을 기억하자.
문자열에 *1을 해서 문자열을 숫자로 변경할 수 있다는 것을 알게 되었다.