CS/C

GPT야, 3.9와 3.11 중에 무엇이 더 큰 수야?

munsik22 2025. 2. 7. 22:31

최근 온라인 상에서 화제가 되고 있는 사진이 있습니다. 바로 챗GPT에게 3.9와 3.11 중에 더 큰 수를 묻자 3.11이 더 큰 수라고 대답하는 모습이었는데요.

아무리 GPT가 멍청하다지만... 설마 그 정도도 모르겠어요? 제가 직접 GPT에게 물어봤습니다.

놀랍게도 GPT는 당당하게 3.11이 3.9보다 더 큰수라고 대답했습니다. 이유를 물어도 무슨 이상한 이유만 대고 말이죠.

그래서 다시 물어봤습니다. 3.90과 3.11 중에서는 3.90이 더 크다고 정상적으로 대답했습니다. 그리고 3.90이 3.9와 같다는 것도 알고 있고요.

3.9는 3.90과 동일하지만, 3.11보다 작다는 게 무슨 소리죠? 제가 3.90이 3.11보다 더 크지 않느냐고 되묻자 GPT는 결국에는 3.11이 3.9와 3.90보다 더 크다는 결론을 내렸습니다.

아직 AI가 인류를 지배하기엔 너무 수준이 떨어져 보입니다. 이렇게 GPT가 3.11이 3.9보다 더 크다고 고집을 부리는 이유가 무엇일까요?


GPT가 학습을 할 때는 주로 Python을 사용합니다. 이 때 학습 데이터에 Python 3.9와 Python 3.11 중에서 Python 3.11을 더 크게 보는 경향이 있기 때문에, 결론적으로는 이상한 답변을 내리게 된 것으로 보입니다.

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai

Softeer에 재미있는 문제가 출제되었는데요. 바로 우리가 직접 고집불통 GPT식 숫자 비교 프로그램을 구현하는 것입니다. 저는 이 문제를 C언어를 이용해서 풀었습니다.

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

struct Version {
    int x;
    int y;
};

int compare(const void *a, const void *b) {
    struct Version *versionA = (struct Version *)a;
    struct Version *versionB = (struct Version *)b;

    if (versionA->x != versionB->x) {
        return versionA->x - versionB->x;
    } else {
        if (versionA->y < versionB->y) return -1;
        if (versionA->y > versionB->y) return 1;
        return 0;
    }
}

int main(void)
{
    int n;
    scanf("%d",&n);
    int x[n], y[n];

    for(int i=0; i<n; i++){
        char str[10];
        scanf("%s", str);
        if (strchr(str, '.')) {
            char *ptr = strtok(str, ".");
            x[i] = atoi(ptr);
            ptr = strtok(NULL, ".");
            y[i] = atoi(ptr);
        } else {
            x[i] = atoi(str);
            y[i] = -1;
        }
    }

    struct Version v[n];
    for(int i=0; i<n; i++){
        v[i].x = x[i];
        v[i].y = y[i];
    }

    qsort(v, n, sizeof(struct Version), compare);
    for(int i=0; i<n; i++){
        if(v[i].y == -1) printf("%d\n",v[i].x);
        else printf("%d.%d\n",v[i].x,v[i].y);
    }
    return 0;
}

C에서는 딕셔너리와 정렬을 지원해주지 않기 때문에 직접 구조체와 정렬 함수를 구현해야 했습니다. 하지만 Python에서는 dict()과 sort()를 지원해주기 때문에, python을 사용한다면 이 문제를 더 쉽게 풀 수 있겠죠?

'CS > C' 카테고리의 다른 글

C언어로 스택/큐 구현하기  (0) 2025.04.12
C언어로 이진 트리 구현하기  (0) 2025.04.12
C언어로 BFS 구현하기  (0) 2025.02.07
C언어로 DFS 구현하기  (0) 2025.02.07
C언어로 gcd()와 lcm() 구현하기  (0) 2025.02.07