풀이방법
사용된 것:
브루트포스 알고리즘
2022.05.03
1번째부터 10000번째까지의 종말의 수를 모두 미리 찾아두고, 그 중에서 입력값에 알맞은 수를 골라 출력하면 된다.
666부터 시작하여 모든 정수를 점검한다.
해당 수가 종말의 수라면 배열에 저장한다.
배열에 10000번째 종말의 수가 저장되면 점검을 종료한다.
입력값을 N이라 할 때, 배열에 N번째로 저장된 수를 화면에 출력하면 된다.
코드
Java(2022.05.03)
import java.util.Scanner;
public class Main {
public static void main(String[] args){
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[10001];
int idx = 0;
//666부터 시작하여 모든 정수를 살핌
for(int i = 666; i>0; i++) {
if(idx==10000) break; //10000번째 종말의 숫자까지 찾았으면 break
char[] str = Integer.toString(i).toCharArray();
//해당 숫자가 종말의 숫자에 해당하는 수면 arr에 저장함
for(int j = 0; j<str.length; j++) {
if(str[j] == '6' && j<str.length-2) {
if(str[j+1] == '6' && str[j+2] == '6') {
arr[++idx] = i;
break;
}
}
}
}
//정답 출력
System.out.println(arr[n]);
sc.close();
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
#11651 : 좌표 정렬하기 2 (0) | 2022.05.04 |
---|---|
#14928 : 큰 수 (BIG) (0) | 2022.05.03 |
#7568 : 덩치 (0) | 2022.05.03 |
#1193 : 분수찾기 (0) | 2022.05.01 |
#2869 : 달팽이는 올라가고 싶다 (0) | 2022.05.01 |