반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- BFS
- 무료코딩강의
- 빅오 표기법
- java
- 백준단계별로풀어보기
- 자바
- 다이나믹 프로그래밍
- 백준
- 동적계획법
- 자바의정석연습문제
- 자바개념
- 백준알고리즘
- dfs
- 백준자바
- 코딩공부
- 개발공부
- 백준9단계
- Java개념
- 자바의정석연습문제풀이
- dp
- ★
- 브루트포스
- 알고리즘공부
- ☆
- 무료개발강의
- 자바공부
- 시간 복잡도
- 자바의정석
- 알고리즘
- 백트래킹
Archives
- Today
- Total
더 많이 실패하기
백준 1436번 영화감독 숌 자바 Java / 11단계 브루트 포스 본문
반응형
백준 11단계 5번 문제 - 1436 영화감독 숌
https://www.acmicpc.net/problem/1436
1436번: 영화감독 숌
666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타
www.acmicpc.net
11. 브루트 포스 (5) 백준 1436번 문제 영화감독 숌
문제
몇 번째로 '666'을 포함한 숫자인지 출력해야 하는 문제다
오답
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
34
35
36
37
38
39
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int num = 666;
int arr[] = new int[10001];
while(true) {
String str = num + "";
int series = 0;
int idx = 0;
for(int i = 0; i < str.length() - 3; i++) {
int one = str.charAt(i);
int two = str.charAt(i+1);
int three = str.charAt(i+2);
if(one == 6 && two == 6 && three == 6) {
series = num;
break;
}
}
if(series == num) {
arr[idx] = series;
idx++;
if(idx == 10001)
break;
}
num++;
}
System.out.println(arr[n]);
}
}
|
cs |
메모리초과 뜬 코드
카운팅정렬하듯이 인덱스값에 차례대로 넣어보려고 했는데 실패했다
정답 인정 코드
그래서 생각해본 메서드는 contains()
포함하고 있다면 true를 반환하는 String의 메서드이다
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
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int number = 666; //666은
int count = 1; //1번째
while(count != n) {
number++;
String str = number + "";
if(str.contains("666")) {
count++;
}
}
System.out.println(number);
}
}
|
cs |
number, count를 각각 665, 0으로 주어도 같은 결과가 나온다
브루트포스도 끝!
목표했던 단계별로 풀어보기를 11단계까지 끝냈다
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 9093번 단어 뒤집기 자바 Java (1) | 2022.10.14 |
---|---|
백준 10828번 스택 자바 Java (0) | 2022.10.13 |
백준 1018번 체스판 다시 칠하기 자바 Java / 11단계 브루트 포스 (0) | 2022.10.11 |
백준 7568번 덩치 자바 Java / 11단계 브루트 포스 (0) | 2022.10.10 |
백준 2231번 분해합 자바 Java / 11단계 브루트 포스 (0) | 2022.10.09 |
Comments