처음 봤을때는 그냥 n-1에 1000을 곱하고 666을 더하면 안되나 생각했지만, 예외가 있다.
1666,2666,3666일때는 그냥 1000만 더해주면 되지만 끝자리가 666이 아닐때, 즉 6660이거나 16660일때는 6661,6662,6663...이 순서로 적용된다. 따라서 이런 상황일때를 고려해 코드를 짜야한다.
가장 간단한 방법은 1씩 더해서 그 더한 값에 666이 포함되어있으면 카운트를 올리고, 카운트가 n과 같아진다면 출력하는 방법이 가장 간단하다. 하지만 시간이 오래 걸린다.
일단은 가장 간단한 방법으로 풀어보았다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;
int movie_num = 666;
while (true) {
if (Integer.toString(movie_num).contains("666")) {
count++;
}
if (count == n) {
System.out.print(movie_num);
break;
}
movie_num++;
}
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 2108번 통계학(Java) (0) | 2021.04.03 |
---|---|
백준 2750번: 수 정렬하기 (0) | 2021.03.29 |
백준 1018번 체스판 다시 칠하기(Java) (0) | 2021.03.27 |
백준 2798번 블랙잭(Java) (0) | 2021.03.15 |
백준 11729번 하노이탑 이동순서(Java) (0) | 2021.03.13 |