
브루트 포스 알고리즘 공부중에 나온 문제인데
무식하게 for 문 돌려서 찾는 방법의 알고리즘을 브루트 포스 알고리즘이라고 하는 것 같다.(일단 느낌은)
브루트포스 알고리즘 문제 다풀고나서 그 알고리즘에 대해 제대로 정의를 알아볼 예정이라 아직은 잘 모름.
이 문제를 가져온 이유는
각 자리 숫자의 합을 가져와야 했었는데 ..
나는 String 값을 하나하나 쪼개서 int 화 시켜서 구해야지 하는 생각에 문제를 제대로 못풀었다.
사실상 되게 간단하게 세자리 숫자를 각 자리수를 뽑은 합을 더할수 있는데 말이다.
다음번에는 어렵게 생각하지 말고 단순하게 생각해서 뽑아내자는 의미로 남겨보겠습니다.
package Baekjoon;
import java.util.Scanner;
public class B_2231 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int result = 0;
for(int i = 0; i<N; i++){
int num = i;
int sum = 0; // 각 자릿수 합 변수
while(num != 0){
sum += num % 10; // 각 자리수 더하기
num /= 10;
}
// i 값과 각 자릿수 누적합이 같을 경우
if(sum + i == N){
result = i;
break;
}
}
System.out.println(result);
}
}
위에 소스코드에서 내가말한 부분은
while 절을 의미합니다. 나머지를 통해서 본 숫자를 10으로 나누면서 각 자릿수를 더할수 있다는점 기억하길