처음 문제 접근
- 15면 15666인데 16이면 16660이라고??
- 이를 어떻게 구현하지??
- for 문을 n까지 돌리면서... 6이 나오면.. 자릿수를 바꾸고 거기서 다시 1을 더하는건가..
정답보고 문제 이해
- 666을 저장하는 변수를 하나 만들고
- 1씩 더하면서 666을 포함하면 count + 1
- count가 N과 같아지면 break
나는 15666 을 어떻게 한 번에 16660 을 만드나를 해서 막혔는데..
그냥 브루트포스로 15667, 15668,..., 16659,16660 이 때 + 1
이런식으로 하는거였구나...
한 번에 하지 말고 브루트 포스 방법을 잘 익혀야겠다고 느꼈다..
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
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 count = 1;
int number = 666;
while (count != N) {
number += 1;
if (String.valueOf(number).contains("666")) {
count += 1;
}
}
System.out.println(number);
}
}
'Development > PS' 카테고리의 다른 글
[PS] 백준 가장 긴 바이토닉 부분 수열 java 풀이 (0) | 2024.09.21 |
---|---|
[PS] 백준 1766 문제집 java 풀이 (0) | 2024.09.10 |
[PS] 프로그래머스 스타 수열 java 풀이 (0) | 2024.09.03 |
[PS] 백준 문자열 폭발 java 풀이 (0) | 2024.09.01 |
[CT] 프로그래머스 2023 KAKAO BLIND RECURITMENT 택배 배달과 수거하기 java 풀이 (0) | 2024.08.06 |