
부르트포스 문제이다.한번 코드를 짜고나면 이해가 쉬운데 처음에 짜는게 어려운거 같다.
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int num = 666;
int count = 1; // 횟수를 세는 변수
while(count != N){
num++;
if(String.valueOf(num).contains("666")){ // 666을 포함할 때만 카운트를 올려준다.
count++;
}
}
System.out.println(num);
}
}
contains() 메서드는 String에 특정 String이 포함되어있는지 유무를 true false로 반환한ㄷ.
count는 이 숫자가 몇번째 숫자인지 감지하는 변수로,내가 입력한 숫자와 같아질시 while문이 종료되게 된다.
한번 반복 될 때 마다 num이 하나씩 올라간다.올린 num이 666을 포함할 경우 count를 ++해준다.포함하지 않을 경우 올리지 않는다.이렇게 하면 666을 포함할 때만 count를 올려줄수 있다.
경우의 수를 따져서 알고리즘으로 푸는 방법도 있는데 그건 아직 잘 모르겠다.너무 어렵드라...