https://www.acmicpc.net/problem/1436
제출 코드
#include <iostream>
#include <string>
using namespace std;
bool getSixNum(int n)
{
string str = to_string(n);
int count = 0;
for (int i = 0; i < str.length(); i++)
{
if (str[i] == '6')
count++;
else
count = 0;
if (count > 2) return true;
}
return (count > 2);
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n, title = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
title++;
while(!getSixNum(title)) title++;
}
cout << title;
}
조건을 만족하도록 하는 계산이 마땅히 떠오르지 않아 그냥 브루트 포스 알고리즘으로 풀이하였다
계속 title에 1을 더해주고 6이 3개 이상 연속해서 오는지를 체크한다
만약 6이 3개 이상 연속으로 들어가는 수를 찾았다면 for문에서 1이 더해지고 다시 다음 6이 3개 이상 오는 수를 찾게 된다
(n번째로 오는 6이 3개 이상 들어가는 수를 찾기 위함)
3개 연속으로 6이 와야 하기 때문에 만약 이번 char이 '6'이 아니라면 count 변수를 0으로 초기화시켜주는 과정을 넣어주었다
'Programing > 백준, 프로그래머스(C++)' 카테고리의 다른 글
[C++][백준 7568] 덩치 (0) | 2025.01.09 |
---|---|
[C++][백준 1676] 팩토리얼 0의 개수 (0) | 2025.01.09 |
[C++][백준 11866] 요세푸스 문제 0 (0) | 2025.01.08 |
[C++][백준 10845] 큐 (0) | 2025.01.08 |
[C++][백준 10828] 스택 (0) | 2025.01.08 |