알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄
https://programmers.co.kr/learn/courses/30/lessons/12947
코딩테스트 연습 - 하샤드 수
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하
programmers.co.kr
13의 모든 자릿수의 합은 4, 13은 4로 나누어 떨어지지 않으므로 13은 하샤드 수가 아닙니다.
Think🤔
하샤드 수?라는 것은
자릿수의 합이 9이고 원래의 값을 자릿수 합으로 나눴을때 나누어 떨어지면 하샤드 수가 되므로
true를 반환시키면 된다.
각 자릿수의 합을 구하고, 나눠 떨어지면 true를 반환하게 하면 된다.
Solution✍
class Solution {
public boolean solution(int x) {
// String으로 변환
String str = x+"";
// 자릿수 합
int hab=0;
// x값 변환 안되게 tmp 사용
int tmp = x;
// 자릿수 hab에 누적해서 더해줌
while(tmp > 0){
hab += tmp%10;
tmp = tmp/10;
}
// 나눴을때 나머지가 없으면 true를 리턴
if(x % hab == 0){
return true;
}
return false;
}
}
class Solution {
public boolean solution(int x) {
String []str = String.valueOf(x).split("");
int hab = 0;
for(int i=0; i<str.length; i++){
hab += Integer.parseInt(str[i]);
}
if(x % hab == 0){
return true;
}
return false;
}
}
Review🤩
split 키워드를 보고 바로 이전으로 돌아와서 split로 짜는 방법을 생각해봤다!
'Algorithm' 카테고리의 다른 글
[프로그래머스] 짝수와 홀수 (0) | 2021.12.02 |
---|---|
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2021.12.02 |
[프로그래머스] 핸드폰 번호 가리기 (0) | 2021.12.02 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) | 2021.12.02 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 (0) | 2021.12.01 |