문제

문제 링크

어떻게 접근할 것인가

  • 어떻게 문제를 풀지 엄청 고민하다가 그냥 처음부터 하나씩 찾아봐주기로 했다.
  • 3개의 숫자가 연속적으로 6을 만들면 cnt를 높여주고 cnt가 n과 동일해지면 그 수를 출력한다.

코드

#include <cstdio>

int main(){
    int num = 666, cnt = 0, rank = 0, temp, n;
    scanf("%d", &n);
    while(1){
        temp = num, cnt = 0;
        while(temp != 0){
            if(temp % 10 == 6){
                cnt ++;
                if(cnt >= 3){
                    rank++;
                    break;
                }
            }
            else cnt = 0;
            temp /= 10;
        }
        if(rank == n) break;
        num++;
    }
    printf("%d", num);
}

느낀점

  • 때론 완전 비효율적인 것 같은 코드도 컴퓨터는 돌아가게 할 수 있다는 걸 기억하자
  • 효율을 고민하기 전에 여러 방법을 먼저 생각하자