Notice
Recent Posts
Recent Comments
Link
알고리즘 모음(C++)
백준 1436 - 영화감독 숌(C++) 본문
문제 링크입니다. https://www.acmicpc.net/problem/1436
브루트포스 알고리즘 문제였습니다.
"666"을 포함하여 영화번호를 정하는 문제였습니다.
1번 -> 666, 2번 -> 1666, 3번 -> 2666, 4번 -> 3666, 5번 ->5666, 6번 -> 6660....
666이 포함되어 있지만, 숫자가 계속 증가하고 있음은 알수 있습니다.
따라서 숫자를 계속 증가하면서, 666이 발견되면 순서를 하나 증가합니다.
이때 순서가 N과 값이 같아질 때, 해당 번호를 출력하면 되는 문제였습니다.
문제 접근 방법
1. title을 계속 증가한다.
2. title을 string으로 바꾼 뒤, 666이 존재하는지를 확인한다.
3. 666이 존재한다면 ans을 하나 증가한다.
4. ans의 값이 N과 같아지면 title을 출력한다.
문제 접근 방법 - 2번
이때 string으로 바꾸는 이유는 string 에서 find()기능을 가지고 있어서입니다. -> 666을 찾기 쉽습니다.
자세한 것은 코드를 참고해주세요
#define _CRT_SECURE_NO_WARNINGS
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
#include <deque>
using namespace std;
int N;
int title = 665;
string name;
void solve() {
int ans = 0;
while (1) {
title++;
name = to_string(title);
if (name.find("666") != -1) {
ans++;
}
if (ans == N) {
cout << title;
break;
}
}
}
int main() {
cin.tie(0);
cout.tie(0);
cin >> N;
solve();
return 0;
}
질문 및 조언 댓글 남겨주세요!
'백준' 카테고리의 다른 글
백준 1966 - 프린터 큐(C++) (0) | 2021.11.05 |
---|---|
백준 4949 - 균형잡힌 세상(C++) (0) | 2021.11.03 |
백준 10866 - 덱(C++) (0) | 2021.11.03 |
백준 10816 - 숫자 카드2(C++) (0) | 2021.11.03 |
백준 1806 - 부분합(C++) (0) | 2021.11.02 |