반응형
https://www.acmicpc.net/problem/1436
브루트포스가 어렵다. 잘 풀리는 것도 있지만 이번에 푼 두개의 브루트포스는 낮은 난이도임에도 모두 풀지 못해서 답을 참고했다.
접근한 부분
사실 접근자체를 하지 못했다. 666에 1~9까지 앞에 붙이고 뒤에는 0~9까지 붙이면서 규칙이 있는지 찾아보려 했는데 보이지 않았다. 규칙이 보이지 않았던 이유는 5666다음에 6666이아니라 6660이기 때문이다. 이 점을 알지 못해서 규칙을 찾지 못했고 브루트포스로 어떻게 탐색해야할지 도통 감이 잡히지 않았다.
잘한 부분
답에서 아이디어를 얻은 후 코드는 금방 짯다.
부족한 부분
숫자문제만 나오면 너무 어렵게 생각한다. 규칙을 찾으면서도 못찾겠지라는 생각으로 문제를 풀고있고 앞에서부터 차근차근 풀이해야하는데 건너뛰다보니 예외케이스를 놓쳤다. 6660의경우 앞에 나오는 예외케이스인데 건너뛰어서 찾지 못했다. 근데 규칙을 찾았어도 브루트포스를 떠올리지 못했다면 못풀었을 것 같다.
package backjon;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static int N;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
int m = 666;
int count = 0;
while(true) {
if(String.valueOf(m).contains("666")) count++;
if(count == N) break;
m++;
}
System.out.println(m);
}
}
반응형
'알고리즘' 카테고리의 다른 글
백준 18870 자바 (0) | 2022.03.09 |
---|---|
백준 2108 자바 (0) | 2022.03.08 |
백준 2470 자바 (0) | 2022.03.07 |
백준 1018 체스판 다시 칠하기 (0) | 2022.03.07 |
백준 2231 자바 (0) | 2022.03.05 |