Language/JAVA
[프로그래머스] 하샤드 수
paran21
2022. 1. 19. 10:17
https://programmers.co.kr/learn/courses/30/lessons/12947
class Solution {
public boolean solution(int x) {
boolean answer = true;
//charAt으로 변환하여 자리수를 계산하기 위해 String으로 변환
//String num = Integer.toString(x)도 가능
String num = String.valueOf(x);
int sum = 0;
//charAt을 아스키코드에서 숫자로 계산할 때는 '0'(혹은 48)을 빼야 함
for (int i = 0; i < num.length(); i++) {
sum += num.charAt(i) - '0';
}
//answer = (x % sum == 0) ? true : false;
//true가 되는 조건을 바로 입력해도 된다.
return x % sum == 0;
}
}
다른 답안들 중에 char배열을 만들고 foreach를 써서 바로 더해주는 구문이 인상적이었다.
class Solution {
public boolean solution(int x) {
char[] charArr = String.valueOf(x).toCharArray();
int divisor = 0;
for (char c : charArr) {
divisor += (int) c - 48;
}
return (x % divisor == 0);
}
}