문제 출처 - Programmers
문제는 여기
[풀이]
1. 입력값을 계속 나눠줄 것이므로 입력값을 저장해둔다.
2. 입력값을 계속 10으로 나눠주고 나머지를 더해준다.
3. 2. 에서 구한 값으로 1. 에서 저장한 값을 나눠준다.
4. 결과에 맞춰 true, false를 출력한다.
[접근]
1. 입력으로 받은 각 자릿수들을 쪼개서 합을 구해주고 이 값으로 입력값을 나눠서 결과를 출력하면 되겠다고 생각하였다.
[코드]
class Solution {
public boolean solution(int x) {
// 나눌 것이므로 입력값을 저장해둠
int input = x;
int sum = 0;
// 계속 10으로 나눈 나머지를 더해준다.
while (x > 0) {
sum += x % 10;
x /= 10;
}
// 자릿수의 합으로 입력값을 나눠서 0이면 true 아니면 false
return input % sum == 0 ? true : false;
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 최대공약수와 최소공배수 (JAVA) (0) | 2022.05.28 |
---|---|
[프로그래머스] 최소직사각형 (JAVA) (0) | 2022.05.27 |
[프로그래머스] 소수 찾기 (JAVA) (0) | 2022.05.25 |
[프로그래머스] 정수 제곱근 판별 (JAVA) (0) | 2022.05.24 |
[프로그래머스] 약수의 합 (JAVA) (0) | 2022.05.23 |