#include <stdio.h>
#include <string.h>

int main()
{
    int num;
    int cnt = 0;
    char *result, *result2, *result3, *result4;
    char name[6];
    int list[10001];


    for (int i = 100; i <= 1000000; i++)
    {
        sprintf(name,"%d", i); //정수를 문자열로 변환 
        result = strstr(name,"666");
        result2 = strstr(name,"6666");
        result3 = strstr(name,"66666");
        result4 = strstr(name,"666666");

        if (result != NULL || result2 != NULL || result3 != NULL || result4 != NULL )
        {
            list[cnt] = i;
            cnt ++;
        }
    }
    scanf("%d", &num);
    printf("%d\n", list[num-1]);
    return 0;
}

틀렸다는데 실행 잘되니까 난 맞은걸로 할거임 ;;

알고리즘은 다음과 같음

 

연속된 숫자 666을 하나의 문자열로 생각해서 

strstr함수로 666, 6666, 66666, ... 이 포함되었는지 확인

반환값이 NULL이 아니면 list에 저장 후 출력

 

다른사람들 풀이 보니까 아예 브루트포스로 각 인덱스에 접근해서

나머지가 666인지 확인하는 방법을 썼던데(문자열 사용 x)

난 멍청해서 못하겟고 이정도면 나쁘지 않다;;;ㅎ나중에 다시 풀어봐야지

 

+

생각하기 귀찮아서 N이 1부터 10000까지의 수니까 아 대충 만번째 수가 666666가량 되겠지ㅋ

하고 result1234 ㅇㅈㄹ로 정했다(당연히 틀리지)

이런 부정확한 코드로도 컴공이라할수 잇을까요

백준님 죄송합니다 전 최선을 다했습니다

 

'Coding > C, C++' 카테고리의 다른 글

[C] vscode 초기 경로 설정 공부  (0) 2025.07.16
백준 #28278  (0) 2024.07.23
백준 #2231 (실패)  (0) 2024.07.17
백준 #2798  (0) 2024.07.15
백준 #1152  (0) 2024.07.10
#include <stdio.h>

int main()
{
    int n; //분해합 
    int sum, temp;

    scanf("%d", &n); //분해합 입력 

    for (int i = 1; i < n; i++) //1부터 분해합까지 
    {
        sum = i;
        temp = i;
        while (1)
        {
            sum += temp%10;
            temp /= 10;
            if (temp == 0) break;
        }
        if (sum == n) 
            printf("%d ", i);
            break;
            
        if (i == n) printf("0");
    }
    return 0;
}

성공한 코드만 올리라는 법은 없다 존나 뭔소린지 모르겠어서 나중에 다시 풀어야지

성공의 어머니는?실퍀ㅋㅋ

'Coding > C, C++' 카테고리의 다른 글

백준 #28278  (0) 2024.07.23
백준 #1436  (0) 2024.07.22
백준 #2798  (0) 2024.07.15
백준 #1152  (0) 2024.07.10
CODEUP_1162  (0) 2024.07.02

+ Recent posts