https://programmers.co.kr/learn/courses/30/lessons/12947?language=java
문제 분석
- while문을 통해 각 자리수의 합을 전부 더한다. (몫-/과 나머지-%를 활용)
- 모든 자리수를 더한 값을 x로 나누었을 때 나누어 떨어진다면 true, 아니면 false를 반환한다.
문제 풀이
1. while문을 통해 몫이 1보다 작을 때까지 반복한다.
2. 만약 몫이 1보다 작은 경우는 x를 각 자리의 합으로 나누고, 나누어 떨어지지 않을 경우 false를 반환한다.
3. while문 반복을 통해 나머지를 각 자리의 합에 더하고, 몫을 10으로 나누어 해당 숫자를 몫으로 처리한다.
class Solution {
public boolean solution(int x) {
boolean answer = true;
int q = x, sum = 0;
while(true){
if(q<1){
if(x%sum!=0)
answer = false;
break;
}
sum += q % 10;
q /= 10;
}
return answer;
}
}
'Algorithm > programmers' 카테고리의 다른 글
programmers 콜라츠 추측 (0) | 2022.01.09 |
---|---|
programmers 평균 구하기 (0) | 2022.01.09 |
programmers 핸드폰 번호 가리기 (0) | 2022.01.09 |
programmers 상위 n개 레코드 (0) | 2021.12.31 |
programmers 여러 기준으로 정렬하기 (0) | 2021.12.31 |