본문 바로가기

만들기

CODEUP문제 풀어주는 프로그램 만들기

안녕하세요

더보기

이거 괜찮겠지 이거 막 codeup이뭐라고 하는거 아니겠지?

오늘은 크롤러를 사용해서

codeup문제를 자동으로 풀어주는

python 프로그램을 만들 거예요

 

크롤링 또는 스크레이핑은

웹 페이지를 그대로 가져와서 그 안에서 데이터를 추출하는 과정을 의미합니다.

이러한 과정을 수행하는 소프트웨어를 '크롤러'라고 부르는데,

이는 빅데이터 분석, 데이터 마이닝, AI 언어 모델 등

다양한 IT 영역에서 필수적인 역할을 합니다.

 

먼저

import time
import openai
import requests
from bs4 import BeautifulSoup

를 import 해주세요

import time

시간을 체크하기 위해

import openai

chatGPT

import requests
from bs4 import BeautifulSoup

이게 크롤러입니다.

그 후에 chatGPT API(유료)를 발급하고

import 한 뒤에

openai.api_key = "자신의 API키"

를 써줍니다

messages = []

문자열을 만들고

for i in range(1,10):

FOR문을 돌려줍니다

k = "https://codeup.kr/problem.php?id="

이건 사이트 주소

num = 문제번호

자신이 풀고 싶은 문제번호(이 프로그램은 num+10번까지 문제의 답을 알려줍니다)

여기서부터 크롤러입니다

kk = BeautifulSoup(a.content, 'html.parser')

kk를 elements(F12)를 누르면 보이는 것이 kk가 됩니다

found = kk.find(id="pro1")

그중에 ID가 pro1인 것을 찾습니다

여기 부분이 pro1입니다.

그다음

messages.append({"role": "user", "content": f"{str(found)+"python정답코드만짜줘"}"})
completion = openai.ChatCompletion.create(model="gpt-4o", messages=messages)
assistant_content = completion.choices[0].message["content"].strip()
messages.append({"role": "assistant", "content": f"{assistant_content}"})
print(f"GPT : {assistant_content}")

chatGPT사용하면 정답 코드를 짜줍니다

 

완성코드

import time
import openai
import requests
from bs4 import BeautifulSoup
openai.api_key = "자신의 API키"

messages = []
for i in range(1,10):
    k = "https://codeup.kr/problem.php?id="
    num = 1000
    a = requests.get(k + str(num+i))
    kk = BeautifulSoup(a.content, 'html.parser')
    found = kk.find(id="pro1")
    #user_content = input("user : ")
    messages.append({"role": "user", "content": f"{str(found)+"python정답코드만짜줘"}"})
    completion = openai.ChatCompletion.create(model="gpt-4o", messages=messages)
    assistant_content = completion.choices[0].message["content"].strip()
    messages.append({"role": "assistant", "content": f"{assistant_content}"})
    print(f"GPT : {assistant_content}")
    print(a)
    print()
    print()
    print()
    time.sleep(2)

GPT : ```python
a, b, c = map(int, input(). split())
min_value = a if a < b else b
min_value = min_value if min_value < c else c
print(min_value)
```
<Response [200]>



GPT : ```python
a, b, c = map(int, input().split())

if a % 2 == 0:
    print(a)

if b % 2 == 0:
    print(b)

if c % 2 == 0:
    print(c)
```
<Response [200]>



GPT : ```python
a, b, c = map(int, input().split())

if a % 2 == 0:
    print("even")
else:
    print("odd")

if b % 2 == 0:
    print("even")
else:
    print("odd")

if c % 2 == 0:
    print("even")
else:
    print("odd")
```
<Response [200]>

--결과

이런 식으로 코드를 짜줍니다 우리는 복사 + 붙여 넣기만 하면 됩니다.