#include <stdio.h>
int main()
{
int n, m, num;
int sum = 0;
int max = 0;
scanf("%d %d", &n, &m);
int arr[n];
for (int i = 0; i < n; i++)
{
scanf("%d", &num);
arr[i] = num;
}
for (int i = 0; i < n-2; i++)
{
for (int j = i+1; j < n-1; j++)
{
for (int k = j+1; k < n; k++)
{
sum = arr[i] + arr[j] + arr[k];
if (sum > max && sum <= m) max = sum;
}
}
}
printf("%d", max);
return 0;
}
import google.generativeai as genai
import json
genai.configure(api_key="AIzaSyDszjDvADxJQ3UPBHMNlguWw8axL-IuCrM")
model = genai.GenerativeModel('gemini-pro')
keyword = "키워드"
prompt = f"""다음 조건에 맞춰 "{keyword}" 에 대해 퀴즈를 JSON 형식으로 5개 출제하시오.
- 주어진 주제에 대해 5개 보기가 있는 객관식 문제 5개 생성
- 문제와 보기는 한국어로 작성
- 정답은 한 개만 있고, 보기 앞에 숫자는 없어야 함
- JSON 형태로 문제, 보기 5개(리스트), 정답, 해설을 생성. key 이름은 각각
question, options, answer, comment라고 하기
- 출력은 "["부터 시작"""
response = model.generate_content(prompt)
# 문제 생성(json 형식을 파이썬 개체로)
questions = json.loads(response.text)
# 퀴즈 풀기
score = 0
for idx, question in enumerate(questions, start=1): # 1번부터 문제 출력
print(f"Questions {idx}: {question['question']}")
print("Options: ")
for i, option in enumerate(question['options'], start=1): # 선택지 출력
print(f"{i}. {option}")
user_answer = input("Your answer (1-5): ")
user_answer_index = int(user_answer) - 1
if question['options'][user_answer_index] == question['answer']: # 사용자가 선택한 선택지가 정답지와 같으면
print("Correct!") # Correct
print('')
score += 1
else: # 다르면
print("Wrong answer") # Wrong
print('')
print(f"정답: {question['answer']}")
print(f"풀이: {question['comment']}")
print('')
print("당신의 점수는", score, "점 입니다.")
광합성이라는 키워드를 넣으면 다음과 같은 JSON 파일이 나온다. (실행할 때마다 내용은 조금씩 달라짐)
'''
<생성된 questions json 파일>
[{'question': '광합성을 하는 유기체로 다음 중 올바른 것은?',
'options': ['식물', '동물', '미생물', '버섯', '박테리아'],
'answer': '식물',
'comment': '광합성은 식물의 녹색 엽록체에서 일어나는 과정입니다.'},
{'question': '광합성 반응식에서 소비되는 물질로 다음 중 올바른 것은?',
'options': ['산소', '이산화탄소', '물', '글루코스', '질소'],
'answer': '물',
'comment': '광합성은 물 분자를 분해하여 산소를 방출하는 과정입니다.'},
{'question': '광합성에 필요한 원소로 다음 중 올바른 것은?',
'options': ['탄소', '수소', '질소', '마그네슘', '아연'],
'answer': '마그네슘',
'comment': '마그네슘은 엽록체에서 엽록소의 중심 이온으로 역할을 합니다.'}]
'''
새롭게 배운 점 import json 으로 python에서 json 파일에 접근할 수 있는데 무쟈게 편리하다 세상에
데이터를 카테고리화하고 싶을 때가 많은데 C에서 사용하는 구조체를 파이썬에서 구현하기 애매해서 고민이었다 그래서 친구 과제 도와줄 때 그냥 class 사용했었는데
사용자가 실시간으로 입력하는 데이터가 아닌 정적인 데이터를 카테고리화 하고 싶으면 그냥 json 형태로 주어지는 것도 괜찮은 방법인 것 같다
f string도 뭔가 복잡해 보여서 잘 안썼는데 한번 쓰니까 와ㅋㅋㅋㅋ 이렇게 편할수가 일명 pythonic 한 프로그래밍...완전 직관적이고 편리하다
프로그램 잘 돌아가긴 하는데 퀴즈 생성에 가끔 오류가 있다 우리나라 국화가 뭐냐는 질문에 option 중 무궁화가 없다던가.. 문제에 따라 풀이가 생성되기도 하고 생성되지 않기도 함 그냥 언어모델 공통의 오류인건가...
이미 만들어진 모델을 쓰는거다보니까 모델을 불러올 때 자체의 오류는 어케 해결해야 하는 건지 고민이 된당. 지금 말러팔삼 님 LLM 강의 보고 있는데 이분 말고는 우리나라에서 google ai모델 사용해서 실습하는 분이 ....없나? 쓰기 진짜 편리한데 왜지? 암튼 더 공부해보고 돌아오겠슴.