반응형
링크
https://www.acmicpc.net/problem/1436
풀이
6이 연속으로 3번 이상 들어간 수를 찾는 문제입니다.
1부터 시작해서 증가시키며 종말의 숫자를 찾으면 됩니다.
종말의 숫자를 찾는 방법은 다음과 같습니다.
예) 4666231
4666231%1000 -> 231 X
4666231/10 -> 466623
466623%1000 -> 623 X
466623/10 -> 46662
46662%1000 -> 662 X
46662/10 -> 4666
4666%1000 -> 666 O 찾았다!!
다음을 코드로 구현해서 count하고 그게 n과 같을 때 출력해주면 됩니다.
코드
//1436_영화감독 숌
#include <cstdio>
#include <string>
using namespace std;
int i, tmp, n, flag, cnt;
string str;
int main() {
scanf("%d", &n);
while (++i) {
tmp = i, flag = 0;
while (tmp) {
if (tmp % 1000 == 666) flag = 1;
tmp /= 10;
}
if (flag) {
cnt++;
if (cnt == n)break;
}
}
printf("%d\n", i);
return 0;
}
반응형
'PS > BOJ' 카테고리의 다른 글
[백준 BOJ] 2312 수 복원하기 (0) | 2019.08.11 |
---|---|
[백준 BOJ] 1074 Z (0) | 2019.08.11 |
[백준 BOJ] 1018 체스판 다시 칠하기 (0) | 2019.08.10 |
[백준 BOJ] 11365 !밀비 급일 (0) | 2019.08.10 |
[백준 BOJ] 1476 날짜 계산 (0) | 2019.08.10 |