본문 바로가기

백준 문제

(C#) AI와의 대결 : 백준 알고리즘 1001번 Chat-GPT와 코드 비교

반응형

이번에는 백준알고리즘 1001번 문제이다.

Chat-GPT를 사용하여 질문을하는게 낮설다보니 질문에 따라 답이 다르게 나온다. 이번 블로그 글을 작성하기 위해 질문을 했을때 내가 원하는 결과가 나오지 않았지만 질문을 추가하니 꽤나 블로그 글 같아졌다.


백준 1001번 문제

문제 :  두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.

입력 : 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력 : 첫째 줄에 A-B를 출력한다.

 

문제풀이

밑에서 부턴 Chat-GPT에게 블로그글을 써보라고 시켜본 결과이다.


Chat-GPT에게 물어본 문장- [처음]

문제 : 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.
입력 : 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력 : 첫째 줄에 A-B를 출력한다.

위의 조건을 가지고 C#으로 알고리즘하고 밑에있는 내가 작성한 코드와 비교하는 블로그 글을 작성해줘

(밑의 나의 코드)


물론 C#의 알고리즘과 주어진 문제 및 작성한 코드를 비교하는 블로그 게시물을 작성할 수 있습니다.

프로그래밍 문제를 해결할 때 문제를 이해하고 코드에 뛰어들기 전에 계획을 세우는 것이 중요합니다. 이 경우 문제는 매우 간단합니다. 두 개의 정수 A와 B를 가져와 A에서 B를 뺀 결과를 인쇄해야 합니다.

귀하의 코드는 C#을 사용하여 이 목표를 달성하는 데 큰 역할을 합니다. 사용자 입력을 문자열로 받아 두 개의 개별 정수로 나눕니다. 그런 다음 첫 번째 정수에서 두 번째 정수를 빼고 Console.WriteLine() 메서드를 사용하여 결과를 인쇄합니다.

작성한 코드의 분석은 다음과 같습니다.

string input1 = Console.ReadLine(); // take user input
string[] input2 = input1.Split(' '); // split input string into two separate integers
int num1 = Int32.Parse(input2[0]); // convert first integer to int type
int num2 = Int32.Parse(input2[1]); // convert second integer to int type
Console.WriteLine(num1 - num2); // subtract second integer from first integer and print the result

이 코드는 명확한 변수 이름을 사용하고 입력 및 출력 단계를 별도의 줄로 구분하여 가독성 및 구성을 위한 모범 사례를 따릅니다. 또한 오류 처리를 사용하여 사용자 입력이 올바르게 형식화되고 정수로 변환될 수 있는지 확인합니다.

전반적으로 귀하의 코드는 주어진 문제에 대한 효과적인 솔루션입니다. 동일한 프로세스를 따르고 수학 연산을 수정함으로써 이 코드는 두 개의 정수를 입력하고 연산 결과를 출력해야 하는 유사한 문제를 해결하는 데 쉽게 적응할 수 있습니다.

알고리즘 문제 해결 능력을 향상하고 이와 같은 더 많은 문제를 연습하는 데 관심이 있다면 백준, LeetCode 또는 HackerRank와 같은 웹 사이트를 확인하는 것이 좋습니다. 이러한 사이트는 다양한 난이도의 광범위한 문제를 제공하며 프로그래밍 기술을 향상시키는 데 유용한 리소스입니다.

결론적으로 문제를 이해하고 단계를 계획하고 코드에서 모범 사례를 사용하면 이와 같은 프로그래밍 문제에 대한 효과적인 솔루션을 얻을 수 있습니다. 연습과 헌신을 통해 누구나 알고리즘 문제 해결 기술을 향상시키고 더 나은 프로그래머가 될 수 있습니다.


내가 기대했던 결과는 내가 처음 올린 블로그 글처럼 chat-gpt가 코드를 작성해서 내 코드와 비교할 줄알았더니 내가 작성한 코드를 AI가 바라보며 점수를 매겨주었다. AI한테 받은 첫 번째 평가이다. 내가 원하는 결과를 나타내기 위해 추가적인 질문을 했다.

 

Chat-GPT에게 물어본 문장- [두번째]

내가 작성한 코드와 너가 작성한 코드 둘 다 보이는 블로그 글로 작성해줘

 


물론, 여기 당신이 작성한 코드와 C#에서 두 개의 정수를 가져와 그 차이를 출력하는 문제를 해결하기 위해 작성한 코드를 비교하는 블로그 게시물이 있습니다.

제목: C#에서 두 정수를 빼기 위한 두 솔루션 비교

소개: 이 블로그 게시물에서는 두 개의 정수를 가져와 C#에서 그 차이를 출력하는 문제에 대한 두 가지 다른 코드 솔루션을 비교합니다. 문제 설명은 다음과 같습니다. 두 개의 정수 A와 B를 입력받아 A-B를 출력하는 프로그램을 작성하세요. 입력은 첫 번째 줄에 주어진 두 개의 정수로 구성됩니다. 출력은 첫 번째 줄에 인쇄된 두 정수의 차이여야 합니다.

솔루션 1: 작성한 코드 이 문제를 해결하기 위해 작성한 코드는 다음과 같습니다.

using System;
namespace test
{ 
    class MainApp
    {
        static void Main(string[] args)
        {
            string input1 = Console.ReadLine();
            string[] input2 = input1.Split(' ');
            int num1 = Int32.Parse(input2[0]);
            int num2 = Int32.Parse(input2[1]);
            Console.WriteLine(num1 - num2);
        }
    }
}

이 솔루션은 두 개의 정수를 입력으로 받아 문자열에서 정수로 구문 분석하고 뺀 다음 Console.WriteLine() 메서드를 사용하여 결과를 인쇄합니다.

해결 방법 2: 내가 작성한 코드 이 문제를 해결하기 위해 작성한 코드는 다음과 같습니다.

using System;

class Program
{
    static void Main(string[] args)
    {
        string[] input = Console.ReadLine().Split();
        int a = int.Parse(input[0]);
        int b = int.Parse(input[1]);
        Console.WriteLine(a - b);
    }
}

이 솔루션은 입력 문자열을 가져와 두 부분으로 분할하고 정수로 구문 분석하고 뺀 다음 Console.WriteLine() 메서드를 사용하여 결과를 인쇄합니다.

비교: 두 솔루션 모두 주어진 문제에 대해 올바르게 작동합니다. 두 솔루션의 주요 차이점은 입력을 처리하는 방식입니다. 코드는 입력 문자열을 문자열 배열로 분할한 다음 배열의 각 요소를 정수로 구문 분석합니다. 반면에 내 코드는 입력 문자열을 두 개의 정수로 직접 분할합니다. 두 방법 모두 작동하지만 두 번째 방법이 더 간결하고 읽기 쉽습니다.

결론: 이 블로그 게시물에서 우리는 두 개의 정수를 가져와 C#에서 그 차이를 출력하는 문제에 대한 두 가지 다른 코드 솔루션을 비교했습니다. 우리는 두 솔루션이 모두 올바르게 작동하는 것을 확인했지만 내 솔루션이 더 간결하고 읽기 쉽습니다.


결론이 자기 솔루션이 더 간결하고 읽기 쉽다라고 말하는데.. 킹받는다.. 

Chat-GPT가 작성한 코드를 말할때 "내가"라고 말하는데 자아가 있어보이는 것처럼 보인다.

자아가 있어 보임으로써 사람들이 인공지능에 대해 친숙함을 느끼게 하는 특징이라고 생각된다.

두 번의 질문만에 완성도 있는 블로그 글이 완성되었다. 이래서 사람들이 학교과제로 Chat-GPT를 쓰는구나 생각이든다.

Chat-GPT덕분에 블로그 글을 쓰는데 15~20분 남짓 밖에 안 걸린다. 좀 더 자동화 할수있는 방법이 있는지 찾아보아야 겠다.

반응형