[백준] 1436 - 영화감독 숌

2020. 10. 6. 19:29알고리즘/Baekjoon

728x90

백준 사이트 바로가기

 

1436번: 영화감독 숌

666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타

www.acmicpc.net

출처: https://www.acmicpc.net/problem/1436

#Java API 메서드를 사용해도 되지만, 저도 그렇게 풀었습니다. 시간과 메모리 부하를 줄 수 있기 때문에 다른 분들의 코드를 참고했습니다. 그 중에 제 눈높이에 맞고 시간도 오래 걸리지 않는 코드를 가져와 보았습니다. 

우선 제가 푼 방식입니다. String.valueOf(int)를 활용해도 됩니다. 

1) String.valueOf 사용한 풀이 - 간단하지만 (시간 복잡도가)복잡하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
public class DirectorShom_1436 {
    static int[] tripleSix;
    static int N;
    static int idx = 1;
 
    public static void main(String[] args) throws IOException {
        tripleSix = new int[10001];
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
        N = Integer.parseInt(br.readLine());
 
        for (int i = 666; i < 100000000; i++) {
            if (tripleSix[N] != 0)
                break;
            if (String.valueOf(i).contains("666")) {
                tripleSix[idx] = i;
                idx++;
            }
        }
 
        System.out.println(tripleSix[N]);
 
    }
}
cs

2) 연산자 %를 사용한 풀이 - 간단하고 (시간 복잡도가)단순하다.

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
31
32
33
//똑똑한 방법을 찾았다!
 
public class DirectorShom_1436_ex {
 
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
 
        System.out.println(func(N));
 
    }
 
    public static int func(int n) {
        int order = 0;
        int result = 0;
        int target = 0;
 
        for (int i = 666; order < n; i++) {
            target = i;
            while (target > 100) {
                if ((target % 1000== 666) {
                    order++;
                    result = i;
                    break;
                }
                target /= 10;
            }
        }
        return result;
    }
}
 
cs

'알고리즘 > Baekjoon' 카테고리의 다른 글

[백준] 1463 - 1로 만들기  (0) 2020.10.14
[백준] 1904 - 01 타일  (0) 2020.10.14
[백준] 3053 - 택시 기하학  (0) 2020.09.22
[백준] 2775 - 부녀회장이 될테야  (0) 2020.09.18
[백준] 2292 - 벌집  (0) 2020.09.14