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);
}
}
'Language > JAVA' 카테고리의 다른 글
[프로그래머스] 최소직사각형 (0) | 2022.01.19 |
---|---|
[프로그래머스] 3진법 뒤집기 (0) | 2022.01.19 |
[프로그래머스] 콜라츠 추측 (0) | 2022.01.19 |
[프로그래머스] 제일 작은 수 제거하기 (0) | 2022.01.19 |
[프로그래머스] 정수 제곱근 판별 (0) | 2022.01.18 |