최근 수정 시각 : 2024-08-12 00:21:38

정올(사이트)


파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
같은 이름으로 불리는 경시대회에 대한 내용은 한국정보올림피아드 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
나무위키에 문서가 작성된 알고리즘 트레이닝 사이트
[[CodeUp|
파일:CODEUP_LOGO.png
]]
[[KOISTUDY|
파일:koistudy logo.png
]]
[[Baekjoon OJ|
파일:external/d2gd6pc034wcta.cloudfront.net/logo
]]
[[정올(사이트)|
파일:jungol_logo_new.png
]]
[[더블릿|
파일:jb7.gif
]]
[[Codeforces|
파일:CF_LOGO.png
]]
[[AtCoder|
파일:AtCoder LOGO.png
]]
𝙅𝙐𝙉𝙂𝙊𝙇 정보올림피아드 & 알고리즘
파일:jungol_logo_new.png
국가 대한민국
개발자 김동규
사이트 목적 알고리즘 트레이닝
소유자 HancomEducation
설립일 2010년 2월 1일
회원수 약 38,000명[1]
총 제출 횟수 9367768회[2]
버전 6.12.0
링크 파일:홈페이지 아이콘.svg

1. 개요2. 채점 결과3. 채점 시스템4. 대회5. 단계별 문제 분류
5.1. 현재 분류
6. 분류 상세 설명
6.1. Language_Coder6.2. LCoder_Python6.3. Pre_Beginner6.4. Beginner6.5. Pre_Intermediate6.6. Intermediate6.7. Pre_Advanced6.8. Advanced6.9. Pre_Specialist6.10. Specialist6.11. Pre_Expert6.12. Expert6.13. Master6.14. Grand_Master
7. 기타 문제들8. 보안 & 문제점9. 커뮤니티 관련10. 그룹 관련11. 투표 관련12. 샌드박스 관련13. 패치 & 리뉴얼 관련14. 여담15. 관련 문서

[clearfix]

1. 개요

대한민국정보과학 알고리즘 트레이닝 사이트 중 하나이다. 안양시에 위치하는 한글과컴퓨터학원에서 운영하는 사이트이다. 가장 큰 특징으로는 사이트 이름 답게 정보올림피아드 및 기타 프로그래밍 대회[3]에 나온 문제들이 다 실려있다는 것과, 사이트 전용 교재인 자기주도 C언어 프로그래밍이라는 책을 통하여 기초를 다지기 쉽다는 것. 다른 알고리즘 트레이닝 사이트와 달리 JUNGOL 에서는 채점 점수와 틀린 테스트케이스 또한 알려준다.
회원가입은 ID로만 가능하며, ID로 회원가입하고, 네이버나 구글 계정을 연결할 수 있다.[4]

2. 채점 결과

  • Pending: 채점이 밀려서 채점이 완료되지 않은 대기 상태. 보통 1분 내로 채점이 된다.[5][해결]
  • 채점 중 ...(*%): 채점 진행중
  • ✔ 정답!: 프로그램이 모든 테스트 케이스에 대해 맞았을 때 = 100점일 때
  • X 오답: 부분 점수가 인정되었을 때[7] 혹은 0점
  • 시간 초과: 시간 초과[8]
  • 메모리 초과: 문제에 제시된 메모리보다 많은 양의 메모리를 할당할 때
  • 런타임 에러: 실행 도중 'segmentation fault','floating point exception','used forbidden functions', 'tried to access forbidden memories' 등의 에러가 발생해 실행 도중에 프로그램이 종료된 경우
  • 컴파일 에러: 컴파일러가 제출한 소스코드를 컴파일 하지 못한 경우.[9] 채점 결과를 클릭하면 실제 에러 메시지를 볼 수 있다.

자세한 내용은 여기를 참고.

3. 채점 시스템

채점 시스템은 Ubuntu 22.04 LTS​에서 구동된다. 현재 C/CPP 컴파일러GNU GCC/G++를 사용하고 있으며, Java는 OpenJDK 17.0.5을, Python은 python 3.10.6을 사용해 채점한다.
2022년 02월 15일 PyPy3가 제출옵션에 추가 되었으며, 5월 9일에는 GO, JavaScript가 추가되었다.
버전 6.7.0 업데이트로, RustKotlin, 엄랭이 제출옵션에 추가되었다.

컴파일 시 사용하는 옵션은 다음과 같다.
C: gcc Main.c -o Main -O2 -Wall -lm --static -std=c11 -DONLINE_JUDGE
CPP: g++ Main.c -o Main -O2 -Wall -lm --static -pipe -std=c++17 -DONLINE_JUDGE
JAVA: javac --release 11 -J-Xms1024m -J-Xmx1920m -J-Xss512m -encoding UTF-8 Main.java
PYTHON3: python Main.py -m compileall -b
PYPY3: pypy3 Main.py -m compileall -b
GO : go build Main.go
Rust : rustc --edition 2018 -O -o Main Main.rs
Kotlin : kotlin-native Main.kt
Typescript : tsc Main.ts
Lua : luac5.3 -p Main.lua
엄랭 : uhmlang-go Main.uhm
TEXT

아래는 각 컴파일러인터프리터의 버전이다.
gcc/g++: gcc/g++ 12.1.0
JAVA: openJDK 17.0.5
PYTHON: Python 3.10.6
PYPY3: PyPy 7.3.9 (Based On Python 3.8.13)
GO : Go 1.18.1
Rust : Rust 1.73.0
Javascript : node 18.12.1
Typescript : Typescript 4.5.5
Lua : Lua 5.3.6
엄랭 : uhmlang-go v2.0
TEXT

4. 대회[10]

일종의 사이트 내 대회 개념인데, 주로 정보올림피아드 직전에 이루어진다.[11] 가끔씩 뜬금없는 Easy Problem Contest와 같은 심심풀이용 대회들도 열린다.

5. 단계별 문제 분류

과거와 현재의 문제 분류가 약간 다르다.

===# 과거 분류 #===
1 기초다지기
2 실력키우기
3 알고리즘
4 실전대비
5 문제은행
6 비버스
7 모의고사
8 기출문제

5.1. 현재 분류

1 LCoder_C언어 407개
2 LCoder_Python 405개
3 Pre_Beginner 113개
4 Beginner 76개
5 Pre_Intermediate 102개
6 Intermediate 90개
7 Pre_Advanced 77개
8 Advanced 84개
9 Pre_Specialist 38개
10 Specialist 71개
11 Pre_Expert 20개
12 Expert 82개
13 Master 4개
14 Grand_Master 1개

6. 분류 상세 설명

6.1. Language_Coder[12]

자기주도 C언어 프로그래밍에 있는 문제들을 모은 곳이다. 가장 쉬운 난이도이다. 다만 온라인 채점 특유의 빡빡함에 주의.

구성은 다음과 같다.
1 출력 21개
2 입력 23개
3 연산자 22개
4 디버깅 8개
5 선택제어문 23개
6 반복제어문1 18개
7 반복제어문2 27개
8 반복제어문3 25개
9 배열1 30개
10 배열2 24개
11 함수1 24개
12 함수2 24개
13 함수3 19개
14 문자열1 26개
15 문자열2 32개
16 구조체 19개
17 포인터 20개
18 파일입출력 22개

마지막 스페이스는 오류 없이 처리하거나 프레젠테이션 에러를 띄운다.

6.2. LCoder_Python

구성은 다음과 같다.
1 출력 16개
2 변수와 입력 21개
3 연산자 25개
4 문자열1 19개
5 리스트1 22개
6 선택제어문 22개
7 디버깅 10개
8 반복제어문1 17개
9 반복제어문2 30개
10 반복제어문3 25개
11 문자열2 24개
12 리스트2 26개
13 리스트3 30개
14 기타자료형 21개
15 함수1 21개
16 함수2 18개
17 함수3 19개
18 클래스 17개
18 파일입출력 22개

6.3. Pre_Beginner

회원이 아닌 경우 이용이 불가능한 문제집.
구성은 다음과 같다.
1 level1 35문제
2 level2 35문제
3 level3 30문제
4 level4 30문제
5 level5 30문제

6.4. Beginner[13]

Intermediate 분류에 넣기는 애매한데 꼭 풀어봐야 하는 문제들을 모은 곳이다. Beginner라니까 기초같아 보이지만, 딱히 만만히 볼 문제들은 아니다. 문제 중 최저정답률은 14%도 있다.

구성은 다음과 같다.
1 도형만들기1 10개
2 수학1 8개
3 도형만들기2 12개
4 수학2 9개
5 문자열 9개
6 여러가지 10개
7 자료처리 9개
8 재귀 9개

6.5. Pre_Intermediate[14]

회원이 아닌 경우 이용이 불가능한 문제집.
말그대로 알고리즘 대비용[15] 문제들의 집합소이다. 고레벨은 상당히 어렵다. 국제 정보 올림피아드 문제들도 수록 되어 있다. 특히 5레벨 문제들 중 제출 수에 비해 정답 수가 낮다는 것은 해당 문제들이 답이 없다는 것을 시사한다.

구성은 다음과 같다.
1 level1 20개
2 level2 20개
3 level3 20개
4 level4 20개
5 level5 20개
6 Challenge 10개

6.6. Intermediate[16]

이 단원 부터는 다양한 알고리즘들을 학습 할 수 있는 분류이다. 정답률이 7%인 엄청나게 어려운 문제부터, 각 알고리즘의 기초 문제까지 다양하게 분포 되어 있다. 알고리즘 저서를 사용하거나, 컴스쿨의 인강을 들으며 이 분류의 문제들을 풀 수 있다.
1 분활정복 16개
2 자료구조 5개
3 탐욕알고리즘 10개
4 백트래킹-DFS 8개
5 그래프탐색-DFS 10개
6 그래프탐색-BFS 10개
7 동적계획법1 10개
8 동적계획법2 10개
9 여러가지 12개

6.7. Pre_Advanced

회원이 아닌 경우 이용이 불가능한 문제집.
구성은 다음과 같다.
1 Level1 17개
2 Level2 16개
3 Level3 15개
4 Level4 16개
5 Level5 11개
6 Chellange 8개

6.8. Advanced

구성은 다음과 같다.
1 비트연산 4개
2 분할정복 5개
3 자료구조 9개
4 구간질의 5개
5 그래프탐색-DFS 8개
6 그래프탐색-BFS 10개
7 그래프알고리즘 11개
8 동적계획법1 9개
9 동적계획법2 10개
10 여러가지 13개

6.9. Pre_Specialist

회원이 아닌 경우 이용이 불가능한 문제집.
구성은 다음과 같다.
1 Level1 11개
2 Level2 10개
3 Level3 10개
4 Level4 7개
5 Level5 5개
6 Challenge 2개

6.10. Specialist

구성은 다음과 같다.
1 자료구조 11개
2 구간질의 7개
3 그래프알고리즘 14개
4 동적계획법1 12개
5 동적계획법2 13개
6 기하 6개
7 여러가지 8개

6.11. Pre_Expert

회원이 아닌 경우 이용이 불가능한 문제집.
구성은 다음과 같다.
1 Level1 4개
2 Level2 4개
3 Level3 5개
4 Level4 4개
5 Level5 3개
6 Challenge 3개

6.12. Expert

구성은 다음과 같다.
1 자료구조 8개
2 구간질의 16개
3 그래프알고리즘 9개
4 동적계획법 13개
5 기하 9개
6 여러가지 10개
7 네트워크플로우 8개
8 문자열알고리즘 9개

6.13. Master

회원이 아닌 경우 이용이 불가능한 문제집.
구성은 다음과 같다.
1 Level1[17] 9개

6.14. Grand_Master

회원이 아닌 경우 이용이 불가능한 문제집.
구성은 다음과 같다.
1 새 필드[18] 6개

7. 기타 문제들

1 기출문제
2 StudyLab[19]
3 기타 미분 문제들

8. 보안 & 문제점

  • 컴퓨터를 절전 상태로 바꿨다가 다시 켜고 사이트의 Pre_Intermediate 로 들어가면 단원은 없이 문제만 나열되는 버그가 있다.[20]
  • 사이트를 방치하면 텍스트의 클릭 상호작용이 없어지는 버그가 있다.[21] [22]
  • 운영자가 사이트를 전혀 관리하지 않는다. 리뉴얼 전부터 사용 가능하던 타 유저 코드 조회 버그[23], SQL injection이나 XSS 등 각종 취약점 이슈에 전혀 대응하지 않고 있으며 [24][25][26]채점 서버 또한 관리가 전혀 되지 않고 있다.[예시][28][해결]
  • 사이트 소스코드만 살펴보아도 UI의 배치와 퀄리티가 떨어지며 버그 또한 많다. 그리고 서버의 SSH 주소와 포트 또한 쉽게 찾아낼 수 있어서[30] 누구나 접속하여 Apache HTTP 서버 디렉토리에 손을 댈 수 있다.[31]
  • 게시판의 인코딩 세팅 수준[32]이 알고리즘 트레이닝 사이트 스럽지 않게 심각하다. 코드의 중괄호나 세미콜론등 특수문자를 복사/붙여넣기 하면 이상한 문자로 깨져서 등록된다.
  • 어느 정도 시간이 지나면 자동적으로 로그아웃되기 때문에 다시 로그인해야 하는 점이 매우 불편하다.[33] 또한 사이트 소스코드 역시 잘 살펴보면 자동 로그인 시스템이 구성되어 있지만 실제 사용은 불가능하다.[해결]
  • 채점 상태 표시 리뉴얼 후 메모리 표시에 (,) 처리가 되지 않는 경우가 간혈적으로 발생한다.
  • 10월 24일자로, 정올 사이트의 많은 곳에 청소년에게 부적절한 광고가 실험적으로 삽입되었다. [35]

9. 커뮤니티 관련

  • 일반 유저의 계정은 관리자 계정에 비해 게시글 작성 기능이 거의 없다.[36][해결]
  • 가끔 전골과 엮인다.[38]
  • 여러 학원이나 대회를 준비하는 학생들[39]이 주로 사용하는 사이트 중 하나이기도 하다 보니, 친목 관련 문제 역시 존재한다.
  • 2021년 중반기 쯤 글 200여개가 운영자에게 한번에 삭제되어 유저들의 불만이 드러나고 있다.[40]
  • 친목으로 인한 유명 유저, 운영자 사칭 등의 사칭 유저들, 취약점을 이용한 공격성 코드가 담긴 글로 인해 커뮤니티가 사용 불가 수준의 상태가 되었던 적이 있다. [41][폐쇄]
  • 2021년 9월 15일 오후 2시경에 자유게시판이 폐쇄되었다. 자유게시판의 취지에 맞지 않은 글들이 많아서라고 한다. #

10. 그룹 [43] 관련

  • 유저들이 다양한 그룹을 등록하여 활동할 수 있다.
  • 기본적으로 승인 제도로, 승인되는 것은 상당한 난이도와 시간을 소요한다고 한다.[불가능][45]
  • 그룹 관리자는 그룹 게시판에 공지를 쓸 수 있으며 그룹 회원을 승인/삭제할 수 있고, 그룹 내 대회를 출제할 수 있다.

11. 투표 [46] 관련

  • 그 문제를 푼 유저들이 문제에 대해 난이도를 기여할 수 있다.
  • 난이도를 이상하게 기여하거나[47] 욕설&비속어 등을 작성하면 기여를 차단당할 수 있고, 심할 경우 정올 사이트 전체에 대한 재재가 이루어질수 있다.

12. 샌드박스 관련

  • 유저들이 직접 컴파일하고 싶은 코드를 컴파일해서 실행해볼수 있는 브라우저 IDE 개념이다

13. 패치 & 리뉴얼 관련

14. 여담

  • 처음 사이트는 윈도우 기반이었으나, 2014년부터 정보올림피아드의 언어가 Visual C에서 GCC로 바뀌면서 이전했다고 한다.
  • 이전 서버는 여기서(버전4), 여기서(버전5) 볼 수 있다.[47]
  • 예전에는 Python2와 Python3를 모두 지원했는데, 2019년쯤의 사이트 리뉴얼 이후로 Python2가 사라졌다.[53] 당시 다른 언어들[54]이 잠깐 업로드가 가능했다가 사라졌는데, 언어 지원 폭을 늘리려다 모종의 이유로 포기한 듯.
  • 한글과컴퓨터학원 학생인지 인증받을 경우 Pre 단계, Master와 Grandmaster 단계까지 세세하게 볼 수 있다.
  • 제출된 코드 중 가장 긴 코드는 36792자다.
  • 현재 삼성과 콜라보를 진행중인 것으로 보인다.

15. 관련 문서


[1] 2016년 6월 22일 오후 8시 10분 기준[2] 2024년 8월 12일 기준[3] IOI, NYPC 등등[4] 연결하려면 먼저 로그인 창에서 네이버/구글 로그인하기를 눌러서 자신의 계정으로 로그인하면, 연결이 안되어있다고 뜰텐데, 이때 ID로 로그인하면 나중에 로그인 창에서 네이버나 구글 계정으로도 로그인할 수 있게된다.[5] 사실 채점이 밀리지 않아도 Pending 인 경우도 있다.[해결] 2022년 2월 13일, 서버 패치를 통해 이 문제는 해결 되었다. 자세한 것은 (패치 & 리뉴얼 관련) 부분 참고.[7] 제출한 프로그램이 일부 부분에서 틀린 답을 낼때[8] 거의 대부분 제한이 1000ms이다.[9] 물론 경고 메시지(warning message)는 에러 메시지로 간주하지 않는다.[10] 과거 모의고사[11] 문제들은 보통 한글과컴퓨터학원 선생님들이 출제한다.[12] 과거 기초다지기[13] 과거 실력키우기[14] 과거 실전대비[15] 아래에서도 설명하겠지만 Intermediate는 많은 알고리즘을 배울 수 있다[16] 과거 알고리즘[17] 단계별 문제 -> Master -> 요약 탭으로 들어가면, Level1으로 나와있다.[18] 단계별 문제 -> Grand_Master -> 요약 탭으로 들어가면, "새 필드"로 나와있다.[19] 회원이 아닌 경우 이용이 불가능한 문제집.[20] 자동 로그아웃이 원인으로 추정된다.[21] 이 역시 자동 로그아웃으로 인해 생기는 현상이다.[22] f12버튼으로 콘솔을 눌렀을 때도 같은 버그가 일어난다.[23] CSRF 공격 기법을 활용하면 된다.[24] 해킹을 기본이라도 배워본 사람은 알겠지만 저 2가지 공격 기술은 기초적인 공격 기술이다![25] 이는 생각보다 심각한 문제로, 최악의 경우 사이트 자체를 간단히 폭파하는 것도 가능할지도 모른다는 뜻이다(...)[26] 그래도 포크밤 공격이나 stdlib의 메모리 동적 할당 공격 등 사이트에 부하를 거는 형식의 공격은 확실하게 차단되어 있다.[예시] 점수를 알아내는 채점 방식의 특성상 모든 테스트 케이스를 돌려봐야 하는데 이 부분을 악용하여 한 번의 채점을 길면 100초 이상 채점할 수 있다.[28] Time Limit Exceeded로 마무리되는 무한루프의 코드를 2번 이상 제출할 경우 채점 서버가 폭발하여 다른 사람들의 코드 제출이 지연될 수 있다.[해결] 이 문제는 2022년 2월 13일 패치로 해결되었다.[30] 사실상 ssh 패스워드 알아내면 사이트는 바로 해킹될 수 있다.[31] 다운로드도 가능하며 과거 JUNGOL 로고나 gif등이 있다고 한다.[32] 일반 유저만 해당[33] 제출 버튼 눌렀더니 다시 로그인하라고 하면 살짝 짜증난다.[해결] 이 문제는 정올 6 리뉴얼 이후 업데이트로 해결되었다.[35] 그러나, 10/28자로 광고가 뜨는 영역을 제한했으며, 청소년에게 부적절한 광고가 표시되지 않도록 설정을 적용했다고 밝혔다.[36] 관리자 계정은 인코딩과 폰트, 사이즈 등 여러가지 커스터마이징이 가능하다.[해결] 이 문제는 정올 6 리뉴얼 이후 업데이트로 해결되었다.[38] 파일:ad28dc671724caa0ac9c34235f6c63405cf117e1d32e051dc920b7abeb227f123b56be399314d5ff7513c4ab3e72a136c0eb78c554af1e614f0333abf69f03c69edaaed8857aa6737b94ef37984697725b5a7ed5e73e498503.pngJUNGOL을 JUN GOL로 끊어 읽는 말장난이다.[39] 말이 좋아 학생이지 사실상 잼민이(초등학생) 연령층이 주를 이룬다(...)[40] 다만 상술한 '문제가 있는 내용들'이 대부분 삭제된 것이므로, 커뮤니티 상태가 얼마나 개판인지 알 수 있는 부분이다.[41] 지금은 모두 삭제되었다.[폐쇄] 현재는 자유게시판 자체가 폐쇄되었다.[43] 과거 동아리[불가능] 그룹은 현재 일반 유저들이 직접 만들 수 없다. 왜인지는 모르겠지만, 막아둔 것으로 보인다.[45] 만약, 정올 6 리뉴얼 전에 만들어 두었다면, 유지가 가능하다.[46] solved.ac[47] 쉬운 문제에 높은 난이도를 기여하는 경우[리뉴얼(1)] 문제집제도가 추가되었다.[패치(1)] 사이트의 채점시스템이 변경되었다. 기존의 채점방식은 서버의 CPU 쓰레드를 하나씩 할당시켜 연산을 하는 방식이라 최대 3개의 코드만 검사할 수 있었다. 그러나 변경된 채점시스템은 각 제출코드마다 새로운 클라우드 서버가 생성되어 최대 1000개의 코드를 동시에 채점할 수 있다고 한다. 앞으로 Pending 상태는 뜨지 않을 것으로 기대된다. 하지만 특정 문제의 버그로 인해 펜딩이 끝나지 않는 버그가 있다(const구간의 합 구하기(1D) 가 대표적인 문제다)[리뉴얼(2)] 2022년 2월 15일, 채점 상태 표시가 리뉴얼 되었다. 기존 채점 상태 표시는 거의 모두 영문으로 나왔지만(예. Compile Error, Success 등) 리뉴얼 후 한글로(예. 컴파일 에러, 정답!)으로 바뀌었다. 또한 기존 채점 결과 페이지는 그냥 HTML코드를 복사한듯한 볼품 없는 페이지였지만 리뉴얼 후 심플한 그래픽 페이지로 업그레이드 되었다. 그리고, 채점현황의 채점 리스트 업데이트 타임이 매우 빨라져 현재는 리스트를 거의 실시간으로 확인할 수 있다. 또, 채점현황에서 기존 (채점중...) 이 아닌 채점이 현재 얼마나 통과 했는지 실시간 백분율로 알려준다.(TestCase 수에 따라 다름.)[리뉴얼(3)] 2023년 5월 27일, 사이트가 완전히 새롭게 리뉴얼되었다. 또한, 사이트 인터페이스 리뉴얼과 기타 UI 버그 개선, 다크 모드 지원, 로고의 변경 등의 많은 변화가 있다.[47] 하지만 이제는 사용이 불가능하다[53] Python2는 Python 3.0 버전 이전의 파이썬을 말하는 것으로, 둘의 문법은 약간 차이가 있다. 자세한 내용은 Python 참고[54] Ruby, R