본문 바로가기
프로그래밍/알고리즘

chatGPT 활용하여 알고리즘 풀이 후기

by 숙님 2023. 2. 16.
728x90

1. 문제 풀이 

chatGPT를 활용해서 알고리즘을 풀이하고 공부도 할 수 있다 

 

ChatGPT: Optimizing Language Models for Dialogue

We’ve trained a model called ChatGPT which interacts in a conversational way. The dialogue format makes it possible for ChatGPT to answer followup questions, admit its mistakes, challenge incorrect premises, and reject inappropriate requests. ChatGPT is

openai.com

위의 홈페이지에서 들어가서 구글 로그인하고, 궁금한 것을 질문한다 

 

이렇게 질문했다

영어로 물어보면 답변할 때 한국말보다 훨씬 빨라서 질문만 영어로 하고 

문제는 프로그래머스의 설명을 그대로 복붙 했다 

def solution(n, lost, reserve):
    # 학생 번호는 1부터 시작하므로 n+1개의 0으로 이루어진 리스트를 생성
    students = [0] + [1] * n

    # 체육복을 도난당한 학생은 체육복 개수를 1개 감소시킴
    for l in lost:
        students[l] -= 1

    # 여벌의 체육복을 가지고 있는 학생은 체육복 개수를 1개 증가시킴
    for r in reserve:
        students[r] += 1

    # 체육복을 빌려주는 과정
    for i in range(1, n+1):
        if students[i] == 2:
            if i-1 >= 1 and students[i-1] == 0: # 왼쪽 학생에게 빌려줌
                students[i-1] += 1
                students[i] -= 1
            elif i+1 <= n and students[i+1] == 0: # 오른쪽 학생에게 빌려줌
                students[i+1] += 1
                students[i] -= 1

    # 수업을 들을 수 있는 학생 수 계산
    answer = 0
    for s in students:
        if s > 0:
            answer += 1

    return answer

주석까지 친히 달아준다...!

코드에 대한 설명도 자세히 알려준다 

 

2. 에러 찾기 

chatGPT에 보낸 메세지 내용

내가 문제를 풀면서 에러가 나면 구체적으로 어디서 에러 찾기가 어렵다 프로그래머스만 보더라도 아래의 그림처럼 어떤 에러인지 알려주고, 어디 줄에 해당하는지 안 알려준다 

그런데 gpt는...

먼저 문제의 에러사항에 대한 설명을 주고 

def solution(n, lost, reserve):
    # Remove duplicates from lost and reserve lists
    lost_set = set(lost) - set(reserve)
    reserve_set = set(reserve) - set(lost)
    
    answer = [1]*(n+1)
    cnt = 0 
    for i in range(1, n+1):
        if i in lost_set: 
            answer[i] -= 1 
        if i in reserve_set: 
            answer[i] += 1 
    
    for i in range(1, n+1):
        if answer[i] ==2:
            if answer[i-1] == 0:
                answer[i] -= 1 
                answer[i-1] += 1
            elif answer[i+1] == 0:
                answer[i] -= 1 
                answer[i+1] += 1 
    for i in range(1, n+1):
        if answer[i] >= 1:
            cnt += 1 
    return cnt

모범답안까지 제시해 준다

 

더 충격적인 건.....

문제를 풀고 모르면 한 줄 한 줄 설명도 해준다...

 

3. 느낀 점 

1. 과외 선생님 

문제를 풀다가 막힐 때 참고하면 밀착 과외선생님처럼 활용할 수 있다 

참 좋다

 

2. 신뢰성 

문제를 복붙 할 경우 히든테스트케이스까지 포함하여 정답률 100%이다(내가 경험한 것은) 

그래서 마음 놓고 공부할 수 있다 

 

3. 편리성 

알고리즘 풀이가 어려워서 다른 사람의 정답이나 블로그를 보더라도 

한 번에 이해 안 되는 경우도 많아 여러 가지 해답을 보게 되는데 

chatGPT는 가독성 있는 코드와 설명을 함께 주어서 이것만 보아도 이해가 잘 된다 

편리하고 시간도 절약할 수 있다 

 

4. 번외 

gpt와의 대화 / 아니근데 질문 영어로했는데 왜 한글로 답변한거지....

오늘 하루동안 많이 써보니 코딩테스트 문제를 많이 틀리기도 하고 

오류가 나기도 한다 

인간미... 까지 탑재한 그는 대체..

댓글