devlog_owen
[프로그래머스] 하샤드수 본문
728x90
에...?하샤드수...? 내가 아는 수는 박명수, 활명수, 무리수...
암튼 정수의 모든 자릿수를 다 더하려면 각 자릿수를 분리해야겠다는 생각이 먼저 들었다. 그러다 toString이라는 메서드를 알게 되었다. 말그대로 숫자를 문자열로 바꿔주는 메서드다. 이걸 알아내고 문제풀이에 돌입했다.
나의 풀이
function solution(x) {
let sum = 0
const n = x.toString()
for (i=0; i<n.length; i++){
sum += parseInt(n[i])
}
return x % sum === 0
}
사실 아직도 let, const의 개념이 헷갈린다. 처음에는 상단의 변수선언을 두개다 const로 했었다, 그런데 오류가 나서 혹시 하고 sum을 let으로 바꾸니까 해결됐다. 아마 sum을 선언했는데 밑에있는 sum을 다시 선언해서 오류가 난 것 같다.
다른 사람의 풀이
function solution(x) {
return x%eval([...x.toString()].join("+")) ? false : true;
}
사실 처음 보고 삼항연산자다 이것 말고는 잘 모르겠어서 가지고 왔다.
...x.toString() 은 문자열로 변환한 x를 배열에 집어넣는다. 그다음 join("+")으로 배열 안의 문자요소들을 다 더하는 식을 완성한다. 그다음 eval()을 통해 js 코드로 문자요소들을 다 더하는 식을 계산하게 한다.
삼항연산자, eval(), join() 기억하기...
728x90
'algorithm > (js)프로그래머스' 카테고리의 다른 글
[프로그래머스] 행렬의 덧셈 (1) | 2023.11.01 |
---|---|
[프로그래머스] 직사각형 별찍기 (1) | 2023.11.01 |
[프로그래머스] 양꼬치 (0) | 2023.10.31 |
[프로그래머스] 나이 출력 (0) | 2023.10.25 |
[프로그래머스] Day 3 짝수는 싫어요 (0) | 2023.10.25 |