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
- 자료구조
- 데이터베이스
- 연결 리스트
- til
- C
- 코딩테스트사이트추천
- 프로그래머스
- 알고리즘
- 오블완
- 웹
- 코딩테스트
- 플로이드-워셜
- 99클럽
- 1일1코테
- 프로그래밍 언어
- 자바스크립트
- Java
- 개발자루틴
- 개발자취업
- #코드트리 #코딩테스트 #코테공부 #백트래킹 #알고리즘 기초
- 자바
- 갭체크
- 항해99
- 코드트리
- 티스토리챌린지
- 파이썬
- 인접 행렬
- 코딩테스트준비
- 코테공부
- 운영체제
Archives
- Today
- Total
와드의 블로그
1436번: 영화감독 숌 본문
문제
종말의 수란 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는 수를 말합니다. 제일 작은 종말의 수는 666이고, 그 다음으로 큰 수는 1666, 2666, 3666, .... 입니다. N이 주어질 때, N번째로 작은 종말의 수를 구하는 문제입니다.
- 입력: 첫째 줄에 N이 주어집니다. (1 ≤ N ≤ 10,000)
- 출력: 첫째 줄에 N번째 종말의 수를 출력합니다.
링크: https://www.acmicpc.net/problem/1436
풀이
N의 최댓값이 10,000으로 크지 않기 때문에, 가장 작은 종말의 수인 666부터 1씩 증가시키며 조건에 맞는 수를 찾는 브루트포스(완전탐색) 알고리즘을 사용합니다. N번째 수를 찾더라도 그 숫자의 크기가 약 266만 정도이므로, 시간 제한 내에 충분히 탐색할 수 있습니다.
- 탐색 시작: 변수 i를 666부터 시작하여 무한 루프(for (int i = 666; ; i++))를 돕니다.
- 조건 확인: 정수 i를 문자열로 변환(String.valueOf(i))한 뒤, contains("666") 메서드를 사용하여 "666"이 연속으로 포함되어 있는지 확인합니다.
- 카운트 및 종료: "666"이 포함되어 있다면 카운트(cnt)를 1 증가시킵니다. 카운트가 목표값 N과 같아지는 순간이 곧 N번째 종말의 수를 찾은 것이므로, 해당 숫자를 출력하고 루프를 종료(break)합니다.
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int cnt = 0;
// 666부터 시작하여 1씩 증가시키며 완전탐색
for (int i = 666; ; i++) {
// 숫자를 문자열로 변환하여 "666"이 포함되어 있는지 검사
String s = String.valueOf(i);
if (s.contains("666")) {
cnt++;
}
// N번째 종말의 수를 찾았다면 출력 후 루프 종료
if (cnt == n) {
bw.write(i + "");
break;
}
}
bw.flush();
bw.close();
br.close();
}
}
알고리즘 분류
브루트포스 알고리즘 (Brute Force)
'PS > B.O.J' 카테고리의 다른 글
| 4949번: 균형잡힌 세상 (0) | 2026.03.23 |
|---|---|
| 9012번: 괄호 (0) | 2026.03.23 |
| 3473번: 교수가 된 현우 (0) | 2026.03.23 |
| 10709번: 기상캐스터 (0) | 2026.03.22 |
| 2870번: 수학숙제 (0) | 2026.03.22 |