1436
#include <stdio.h>
#include <string.h>
// char 배열의 10자리 올림 함수
void raise (char * arr, int i){
if(arr[i] > '9'){
arr[i] = '0';
if(arr[i+1] == 0){
arr[i+1] = 49;
}
else{
arr[i+1] ++;
}
raise(arr, i+1);
}
else{
return;
}
}
int main(void){
// 시즌 입력하기
int num;
scanf("%d", &num);
char end_title[1000] = {'5','6','6'};
for(int i = 0; i < num;){
int six_continue = 0;
// 현재 숫자 + 1
end_title[0] ++;
raise(end_title, 0);
int len = strlen(end_title);
// 연속하는 6이 3개 있는지 알아보기
for(int j = 0; j < len; j++){
// 만약 현재 인덱스의 숫자가 6일 경우 ++
if(end_title[j] == '6'){
six_continue ++;
}
// 만약 현재 인덱스의 숫자가 6이 아니면 0으로 초기화
else{
six_continue = 0;
}
// 6이 연속으로 3이상이면 i증가 후 현재 반복문 break;
if(six_continue >= 3){
i++;
break;
}
}
}
// 반대로 출력
int len = strlen(end_title);
for(int i = len-1; i >= 0; i--){
printf("%c", end_title[i]);
}
}

이거 dp로 푸는 방법 있다고는 하는데 뭔 느낌으로 푸는지 알거 같은데 머리가 안따라줌.. ㅜㅜ
'백준' 카테고리의 다른 글
| [ 백준 / C ] 2846번 : 오르막길 (0) | 2025.11.05 |
|---|---|
| [ 백준 / C ] 14563번 : 완전수 (0) | 2025.11.04 |
| [ 백준 / C ] 1524 : 세준세비 (0) | 2025.10.31 |
| [ 백준 / C ] 17450번 : 과자 사기 (0) | 2025.10.30 |
| [ 백준 / C ] 26560번 : Periods (0) | 2025.10.29 |