반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 유클리드 호제법
- 이분 탐색
- 문자열제곱
- LeetCode 83 c언어
- 정렬
- KMP알고리즘
- 스택
- 구현
- 브루트포스 알고리즘
- 임의 정밀도 / 큰 수 연산
- 프로그래머스
- LeetCode Remove Duplicates from Sorted List in c
- 큐
- 문자열
- 다이나믹 프로그래밍
- 연결리스트 중복제거
- 사칙연산
- 자료 구조
- 재귀
- 정수론
- 시뮬레이션
- Queue
- 수학
- 해시를 사용한 집합과 맵
- 연결리스트 정렬
- 실패함수
- 큰 수 연산
- 조합론
- 별 찍기
- LeetCode 83번
Archives
- Today
- Total
hahn
단계별로 풀어보기(브루트 포스 - 분해합) 본문
728x90
반응형
http://boj.kr/5b7999deb41c43c7849846ab603d78ab
더보기
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int input, start, compare, result;
input = sc.nextInt();
start = input - 9 * ((int) Math.log10(input) + 1);
for(int i = start; i < input; i++) {
compare = i;
result = i;
for(int j = (int) (Math.log10(input)); j > -1; j--) {
result += (int) (compare / Math.pow(10, j));
compare %= Math.pow(10, j);
}
if(input == result) {
System.out.println(i);
break;
}
if(i + 1 == input) System.out.println("0");
}
}
}
시작 부분을 어떻게 구할까 생각하다가
본인 가지고 있는 자릿수에 9를 곱한 값을 빼주고
거기부터 시작하게 했다.
출력되어야 하는 값에 i를 더해주고
Math.pow 이용하여 몫과 나머지를 이용해서 각 자리의 수를 더해줬다.
0 출력은 그냥 for문 끝나기 직전에 출력되게 해 놨다.
(break문을 안 만났다는 의미)
728x90
반응형
'코딩테스트 연습 > 백준(JAVA)' 카테고리의 다른 글
단계별로 풀어보기(문자열 알고리즘1 - 문자열 제곱) (0) | 2021.09.01 |
---|---|
단계별로 풀어보기(브루트 포스 - 덩치) (0) | 2021.08.31 |
단계별로 풀어보기(브루트 포스 - 블랙잭) (0) | 2021.08.31 |
단계별로 풀어보기(재귀 - 하노이 탑 이동 순서) (0) | 2021.08.30 |
단계별로 풀어보기(재귀 - 별 찍기 - 10) (0) | 2021.08.25 |