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

+ Recent posts