
문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
정수 d는 만약 n / d = 0이면 정수 n의 약수가 된다.
어떤 정수가 주어지고, 정수로 된 각 숫자가 약수인지 판단해라. 정수 내에서 발견한 약수의 갯수를 구해라.
n = 124
124의 약수로 1, 2, 4가 있는지 확인한다. 세 숫자 모두 124를 나누지고 3을 반환한다.
n = 111
111의 약수로 1, 1, 1이 있는지 확인한다. 세 숫자 모두 111를 나누지고 3을 반환한다.
n = 10
10의 약수로 1, 0이 있는지 확인한다. 1은 맞지만 0은 아니다. 그래서 1을 반환한다.
findDigits 함수를 완성해라.
findDigits 함수는 아래와 같은 매개변수를 가지고 있다.
반환할 약수의 갯수를 담을 count를 선언하고 0을 할당한다. 그리고 String 배열을 선언하고 매개변수 n을 String 배열로 변환하여 할당한다.
int count = 0;
String[] strArr = String.valueOf(n).split("");
String 배열을 반복문을 통해 순회한다. 만약 String 배열의 요소가 0이면 다음 요소로 넘기고, n 을 해당 요소로 나눴을때 나머지가 0이면 count를 증가시킨다.
for(int i = 0; i < strArr.length; i++){
if(strArr[i].equals("0")){
continue;
}
if(n % Integer.parseInt(strArr[i]) == 0){
count++;
}
}
마지막으로 count를 반환한다.
return count;
public static int findDigits(int n) {
int count = 0;
String[] strArr = String.valueOf(n).split("");
for(int i = 0; i < strArr.length; i++){
if(strArr[i].equals("0")){
continue;
}
if(n % Integer.parseInt(strArr[i]) == 0){
count++;
}
}
return count;
}
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.