본문으로 바로가기

백준 1436 영화감독 숌 java

category Algorithm by java 2019. 8. 19. 21:31

이 문제는 함정만 조심하면 쉽게 풀 수 있다. 아마 정답률이 50%가 안되는 이유가 어려워서라기 보단 함정때문이다.

666이 들어가는 숫자, 즉 6이 연속에서 3번 들어가야 하는데 너무 쉽고 단순하게 생각한다면

1번째 -> 666

2번째 -> 1666

        .

        .

6번째 -> 5666

7번째 -> 6666

 

이렇게 생각하게된다. 단순히 N-1에 666을 붙이는 것이 아니고,

6번째인 5666 다음에 7번째로 6660,  8번째로 6661이 나온다는 것을 생각해야한다.

 

처음에 이 문제가 브루트포스인줄 모르고 풀었다가 오답이 나왔는데 완전탐색방법으로 문제를 해결했다.

 

import java.util.Scanner;

public class Exam1436 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt(); // 몇번째 영화제목?
		int number = 0;

		while (N > 0) {
			number++;
			String s = Integer.toString(number);

			if (s.contains("666")) {
				N--;
			}
		}

		System.out.println(number);

	}

}


//2번

import java.util.Scanner;

public class Exam1436_2 {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int cnt = 0;
		int num = 0;

		while (true) {
			num++;
			String s = Integer.toString(num);

			if (s.contains("666")) {
				cnt++;
			}

			if (cnt == N) {
				break;
			}
		}

		System.out.println(num);

	}

}

 

'Algorithm by java' 카테고리의 다른 글

백준 2455번 지능형 기차 java  (0) 2019.08.27
백준 1018번 체스판 다시 칠하기 java  (2) 2019.08.26
백준 7568 덩치 java  (0) 2019.08.16
2798 블랙잭 - java  (0) 2019.08.14
2231 - 분해합 java  (0) 2019.08.13