728x90
탐색의 시작점 찾아내서 푼 케이스도 존재하더라. 최소 몇부터 시작해야하는지
public class Main {
public static void main(String args[]) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//StringBuilder sb = new StringBuilder();
int num = Integer.parseInt(br.readLine());
String checklength = Integer.toString(num);
int length = checklength.length() -1 ; // 1000이라면 길이값이 4가나와서 -1해준다.
int c;
if(length == 0) // c의 시작 값을 조절하는 것. c가 11이라면 0부터 c가 100 이라면 10부터
c = 0;
else
c = (int) Math.pow(10, length-1); // 증가시키며 비교할 숫자
int temp = 0; // c의 자리수를 만들어 줄 숫자
int sum = 0;
int answer = num;
while (c <= num)
{
sum = c;
temp = c;
/************************ 각 자리수의 합을 만드는 루프 *******************************/
for (int i = (int) Math.pow(10, length); i >= 1; i /= 10) // 각 자리수의 합을 만드는 루프
{
if (i != 0)
{
sum += (temp / i);
temp = temp - (temp / i) * i;
}
else
sum += temp;
}
/***************************************************************************/
if (sum == num)
{
if (c < answer) // 새로운 생성자의 값이 작으면 다시 넣어준다.
{
answer = c;
break;
}
}
c++;
}
if (answer == num) // 생성자를 못 찾았다면 위에 answer에 넣어준 num의 값이 변하지 않았으므로(못찾았다의 의미가 된다)
answer = 0;
System.out.println(answer);
br.close();
}
}
728x90
'코딩 테스트' 카테고리의 다른 글
백준 10448번 유레카이론(자바,java,JAVA) (0) | 2023.01.11 |
---|---|
백준 15740번 A+B - 9(자바,java,JAVA) (0) | 2023.01.11 |
백준 1260번 DFS와 BFS(자바,java,JAVA) (0) | 2023.01.11 |
백준 18429번 근손실(자바,java,JAVA) (0) | 2023.01.11 |
백준 1406번 에디터(자바,java,JAVA) (0) | 2023.01.11 |