기능
Solution Download
Run Python
교육 서비스
Pyalgo100
Pyalgo20
SQooL: SQL School
FLEX x GRID
ALGO.VIEW
DataGen
접어두기
Q1. 자격 증명
Q2. 암호문
Q3. 출정인원 선발
Q4. 꿈의 설계
Q5. 상한 당근 찾기
Q6. 샌드위치 포장
Q7. 두 수의 합 찾기
Q8. 무기 생산
Q9. 최대 손실액
Q10. 알리는 포케가 좋아
Q11. 라떼를 엎은 헤오니다
Q12. 마라탕 많이 먹기
Q13. 비행정 탑승
Q14. (꿈-1) 출항 준비!
Q15. 귤 판매하기
Q16. 2인자 선발
Q17. 로봇캣 점검의 날
Q18. 냥이족 종류를 정리하라냥
Q19. (꿈-2) 리치를 무찌르자!
Q20. 빙키의 당근 케이크
00
:
00
:
00
Solution
코드에디터
testcase1
testcase2
testcase3
채점하기
Result
결과가 이 곳에 표시됩니다.
인공지능에게 질문하기
💡 복잡한 로직의 답변은 20초 이상의 시간이 걸릴 수 있습니다.
전송
#from testCaseAndResult import test import pyodide from testcase import testcase_and_result PAGE_NAME = js.document.querySelector('.active').id[1:] def render(*ags): PAGE_NAME = js.document.querySelector('.active').id[1:] for i in range(3): js.document.querySelector(f'#testcase{i+1}').value = str(testcase_and_result[int(PAGE_NAME)]['testcase'][i]) render() def result(*ags, **kws): code = Element("codeeditor").element.innerText PAGE_NAME = js.document.querySelector('.active').id[1:] answer = testcase_and_result[int(PAGE_NAME)]['result'] testCase = testcase_and_result[int(PAGE_NAME)]['testcase'] try: result = ['undefined', 'undefined', 'undefined'] if isinstance(testCase[0], list): code0 = code + f"\nsolution({str(testCase[0])})" code1 = code + f"\nsolution({str(testCase[1])})" code2 = code + f"\nsolution({str(testCase[2])})" if code[-11:-2] == "undefined": result[0] = "undefined" else: result[0] = js.eval(code0) result[1] = js.eval(code1) result[2] = js.eval(code2) else: code0 = code + f"\nsolution('{testCase[0]}')" result[0] = js.eval(code0) code1 = code + f"\nsolution('{testCase[1]}')" result[1] = js.eval(code1) code2 = code + f"\nsolution('{testCase[2]}')" result[2] = js.eval(code2) resultString = "<p class='que-result'>테스트 케이스 번호 : 통과 여부 (실행값 == 정답값) </p>" passing = "<span class='result-pass'> 통과 </span>" fail = "<span class='result-fail'> 실패 </span>" result_save_localstorage = [] for i in range(3): if isinstance(result[i], pyodide.JsProxy): # JS 객체, 배열, 함수, 프로미스인 경우 result[i]=list(result[i]) for i in range(3): resultString += f"<p class='que-result-{i} checkPass'>test{i+1} : {passing if result[i] == answer[i] else fail}<span class='result-compare'>({result[i]} == {answer[i]})</span></p>" result_save_localstorage.append(result[i] == answer[i]) js.document.querySelector('#result_desc').innerHTML = resultString if all(result_save_localstorage): js.window.localStorage.setItem(f'{PAGE_NAME}_check', '통과') js.document.getElementById(f'q{PAGE_NAME}').classList.add('success') else: js.window.localStorage.removeItem(f'{PAGE_NAME}_check') render() except Exception as e: result = f"<p class='que-result-error'>에러입니다. 문제를 다시 풀어주세요.</p> <p class='que-result-errorname'>에러명 : {e}</p>" js.document.querySelector('#result_desc').innerHTML = result button_run = Element("btn-run") button_run.element.onclick = result for i in range(1, 31): button_render = Element(f'q{i}') # button_render.element.onclick = render