-
(이해中)항해3주차 자바스크립트 프로그래머스 - 자릿수 더하기항해 프로그래머스 2023. 1. 30. 19:26
처음 풀이
function solution(n) { let arr = n var answer = 0; split.n for(let i=0;, i < n.length;, i++) return arr.reduce((a,b)=>{ return a+b: },0) return answer; } //n자리 총합구하는게 reduce였나? //가우스 법칙 썼던가 //(a,b)=>(a+b) 이건뭐더라 //혹시 n을 쪼개놓아야하나? //367을 그냥 삼백육십칠로 받아들이는것같음... //쪼개지면->배열->배열요소끼리 더하기
수정 풀이
function solution(n) { var answer = 0; var m=String(n); for(var i=0; i<m.length; i++){ answer+=parseInt(m[i]); } return answer; }
Q string을 왜 쓸까 생각해봤는데 숫자를 나누어서 숫자끼리 결합해야되니까 즉, 쪼개지고 배열처리가 가능해서?
A String은 16비트 부호 없는 정수 값 "요소"로 구성된 집합으로, 각각의 요소가 String의 한 자리를 차지합니다.
첫 번째 요소는 인덱스 0에, 그 다음 요소는 인덱스 1, 그 다음은 2, ...입니다. String의 길이는 그 안의 요소 수와 같습니다.
Q parseInt는 왜 쓴걸까 어차피 조건에 자연수랬으니까 당연히 숫자만 들어가는거 아님? 혹시 소수점들어갈까봐?
A parseInt() 함수는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.
parseInt는 정수 값을 반환하기 위해 소수점 이하 값을 잘라냅니다.
다른 풀이
function solution(n) { var a = (n + '').split(''); var b = 0; for(var i = 0; i < a.length; ++i) { b += parseInt(a[i]); } return b; //return n.toString().split('').reduce((a, b) => (a * 1) + (b * 1)); }
function solution(n) { var arr = n.toString().split(''); var sum = 0; arr.forEach(element => { sum += parseInt(element); }); return sum; }
function solution(n) { var answer = 0; // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. String(n).split('').map(data => answer += parseInt(data)); return answer; }
function solution(n) { var answer = 0; n = "" + n; // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. for(var i = 0 ; i < n.length ; i ++){ answer += n.charAt(i) * 1; } return answer; }
var solution = n => String(n).split('').reduce((a,c)=>a+c*1, 0);
function solution(n) { var answer = 0; var m=String(n); for(var i=0; i<m.length; i++){ answer+=parseInt(m[i]); } return answer; }
function solution(n) { var answer = 0; var list = n.toString().split(''); answer = list.reduce((prev, curr) => { return +prev + +curr }, answer) return answer; }
function solution(n) { var answer = 0; var str = n+''; var len = str.length; while(len>0) { answer += parseInt(n/Math.pow(10, len-1)); n = n % Math.pow(10, len-1); if(n<10) { answer += n; break; } str = n+''; len = str.length; } return answer; }
function solution(n) { var answer = 0; n.toString().split('').forEach(function(i){ answer += parseInt(i) }); return answer; }
function solution(n) { return n.toString().split('').reduce(function(i,j) { return parseInt(i) + parseInt(j) }, 0); }
'항해 프로그래머스' 카테고리의 다른 글
항해3주차 자바스크립트 프로그래머스 - 정수 내림차순으로 배치하기 (0) 2023.01.30 (해설있음)항해3주차 자바스크립트 프로그래머스 - 자연수 뒤집어 배열로 만들기 (0) 2023.01.30 (다시)항해3주차 자바스크립트 프로그래머스 - 이상한 문자 만들기 (0) 2023.01.30 항해3주차 자바스크립트 프로그래머스 - 수박수박수박수박수박수? (0) 2023.01.30 항해3주차 자바스크립트 프로그래머스 - 문자열 내 p와 y의 개수 (0) 2023.01.30