반응형
1. 문제 추상화
"666"이 들어간 수를 작은 순서대로 시리즈 넘버로 한다. N번째 시리즈의 번호를 구하라.
2. 알고리즘
API를 이용하면 굉장히 쉽게 풀 수 있는 문제다. String 객체의 contains() 메소드를 이용하여, 작은 수부터 666이 들어간 모든 경우의 수를 조사하면 된다. [ 브루트 포스 ]
그러나 나는 규칙성을 찾는 도중 재귀함수 냄새를 맡았고 재귀함수로 풀려다가 실패했다. contains() 메소드를 알고 있었지만 기억하지 못했다. 문제풀이는 가장 단순하고 쉽게 풀수 있어야 하니 API를 잊지 말아야 겠다.
3. 코드
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
int value = 665;
while(count < n) {
value++;
if(String.valueOf(value).contains("666")) {
count++;
}
}
System.out.println(value);
}
}
반응형
'문제풀이 > String' 카테고리의 다른 글
[PS] BOJ2608 로마숫자 ( string ) with JAVA (0) | 2023.08.28 |
---|---|
[PS] BOJ165000 문자열 판별 ( String ) with JAVA (0) | 2023.08.23 |
[CodingTest] BOJ17413 단어뒤집기2 ( 문자열 ) with Python (0) | 2023.06.09 |
[JAVA] 백준 5622번 크로아티아 알파벳 : 문자열 탐색 (0) | 2021.07.13 |
[JAVA] 백준 2908번 상수 : 문자열 역순 출력 (0) | 2021.07.12 |