반응형
12947번 문제 - 하샤드 수
코딩테스트 연습 - 하샤드 수 | 프로그래머스 (programmers.co.kr)
풀이
✅ 조건은 1~10000 사이의 자연수
1. 구하고자 하는 자연수를 각 자릿수의 합을 구하고
2. 자연수를 합으로 나누었을 때 나머지가 0이면 하샤드 수
예1) 152 = 1+5+2 = 8
152 / 8 = 19 ❗(하샤드 수)
예2) 13 = 1+3 = 4
13 / 4 = 3.25 ❗(하샤드 수 X)
- 1번 풀이
public boolean solution(int x) {
int sum = 0;
for(int tmp=x; tmp>0; tmp/=10) {
sum += tmp % 10;
}
return x % sum == 0;
}
✅ int 타입 풀이
테스트 케이스 실행속도: 0.02ms
- 2번 풀이
public boolean solution(int x) {
int sum = 0;
for(char ch : String.valueOf(x).toCharArray()) {
sum += ch - 48;
}
return x % sum == 0;
}
✅ char 타입 풀이
테스트 케이스 실행속도: 0.03~0.05ms
- 3번 풀이
public boolean solution(int x) {
int sum = String.valueOf(x).chars().map(ch -> ch - 48).sum();
return x % sum == 0;
}
✅ 람다식 풀이
테스트 케이스 실행속도: 1.2~1.8ms
반응형
'Algorithm > Java' 카테고리의 다른 글
프로그래머스 - 정수 제곱근 판별 java :: 12934 (0) | 2022.01.11 |
---|---|
프로그래머스 - 짝수와 홀수 java (0) | 2022.01.09 |
프로그래머스 - 문자열 다루기 기본 java (0) | 2022.01.04 |
프로그래머스 - 문자열을 정수로 바꾸기 java (0) | 2022.01.04 |
프로그래머스 - 약수의 합 java :: 12928 (0) | 2022.01.02 |