문제 사이트 : https://programmers.co.kr/learn/courses/30/lessons/12947
내 풀이
let num=10;
function solution(num){
let arr = new String(num);
let len=arr.length;
let sum=0;
let answer=true;
for(let i=0; i<len; i++){
sum+=Number(arr.substring(i,i+1))
}
if((num%sum)==0){answer=true}
else{answer=false}
return answer
}
do while을 쓴 풀이
이런 식을 쓰고 싶었는데 방법을 몰라서 포기한 풀이를 누군가 올려놨길래 가져옴. do while이라는 걸로 사용하면 되는구나.
마지막을 boolean 값으로 반환하는걸 저렇게 간단하게 선언할 수 있다는것을 처음 알았다.
프로그래머스를 보면 다른 사람들의 풀이랑 그 풀이에 대한 사람들의 피드백이 적혀있는게 도움이 많이 된다.
function solution(x){
let num=x;
let sum=0;
do{
sum+=x%10;
x=Math.floor(x/10); //계산 결과를 버림처리 한다
}while(x>0);
return !(num%sum) //나머지가 0일경우 true를 반환, 아닐 경우 false를 반환
}
'실천하기 > 코딩테스트' 카테고리의 다른 글
[220108] Lv.1 / 콜라츠 추측 (0) | 2022.01.09 |
---|---|
[220108] Lv.1 평균값 구하기 (0) | 2022.01.08 |
[220107] Lv.1 / 핸드폰 번호 가리기 (0) | 2022.01.07 |
[220105] Lv.2 피보나치 수열 / 메모이제이션으로 풀기 (0) | 2022.01.05 |
[220104] 코테 Lv.1 / 행렬의 덧셈 (0) | 2022.01.04 |
댓글