나무위키에 문서가 작성된 알고리즘 트레이닝 사이트 | |||||
[[CodeUp|]] | [[KOISTUDY|]] | [[Baekjoon OJ|]] | |||
[[정올(사이트)|]] | [[더블릿|]] | [[Codeforces|]] | |||
[[AtCoder|]] |
CodeUp 코드업 | |
국가 | 대한민국 |
사이트 목적 | 알고리즘 트레이닝 |
소유자 | 배준호(admin)[1] |
설립일 | 2012년 5월 12일 |
회원수 | 463,331명[2] |
총 제출 횟수 | 40,344,809회[3] |
링크 |
[clearfix]
1. 개요
정보과학의 기초, 심화 및 한국정보올림피아드 대비 정보과학 예제를 풀어볼 수 있는 알고리즘 트레이닝 사이트.원래는 경남정보고등학교 학생들을 위한 사이트였으나[4], 점점 외부인 유입이 늘어나더니 사이트가 커지면서 학교나 신분에 상관 없이 정보과학 알고리즘 트레이닝을 할 수 있는 곳으로 성장했다. CodeUp은 한국정보올림피아드 대비 외에도 프로그래밍 초보자가 프로그래밍 입문을 쉽게 할 수 있도록 도와준다. 사이트에 수행평가 기능이 있다 보니, 정보 과목이 있는 다른 학교에서 CodeUp을 이용해서 수행평가를 보거나 수업을 하는 경우가 많다. CodeUp을 학교 수업 및 수행평가, 또는 동아리 운영 목적으로 사용하려는 정보 선생님들은 2017년 02월 17일부터 교사 권한 신청을 통해 정보 수업 진행에 필요한 권한을 얻을 수 있게 되었다. 본 사이트로 수업을 하는 학교들이 많아지면서 사이트 트래픽이 거의 한계에 다다라 교사 권한 신청을 받지 않았던 때가 있었는데, 최근 서버를 업그레이드 하면서부터 다시 신청을 할 수 있게 되었다.
2024년 11월 3일 오후 12시 기준으로 총 1,708문제[5]를 열람할 수 있는데, 모종의 이유로 가려진 문제들도 있는 관계로 이들까지 포함하면 전체 1,800문제가량 있을 것으로 추정된다. 가려진 문제들로는 대표적으로 1000번대의 1009번[6], 1104번[7], 1105번, 1522번[8], 2000번대의 2201번, 2202번, 2404번과 5000번대의 5097번 등이 있으며 그 외에 5100번대와 5500~5600번대에도 가려진 문제들이 다수 존재한다. 또한 어떤 문제가 수행평가로 정해지면 그 문제는 문제 리스트에서 사라지고 열람이 불가능해지기 때문에, 가끔씩 열람 가능한 문제 수에 변동이 있을 수 있다. 문제들의 기본적인 형식은 문제 설명과 입력, 출력 형식을 읽고 문제를 해결할 수 있는 코드를 제출하여 OJ 시스템을 통해 채점받는 것으로, 대부분의 문제들이 이와 같은 형식을 가진다. 이 외에도 코드 작성 시에 특정 키워드를 사용할 수 없는 문제들도 있고, 또 몇몇 문제는 코드 전체를 작성하는 것이 아니라 특정 함수 부분만 작성해서 제출하는 문제들도 있다.
이벤트성 문제나 약빤 문제들도 가끔가다 보인다. 1104번 스승의 은혜라든가[9] 1105번프로그래밍의 신이라든가[10] 2404번 404 Not Found라든가[11]
또한 스페셜 저지(Special Judge, 줄여서 SPJ라고도 한다)라는 것이 있는데, 스페셜 저지는 정답이 여러 가지인 문제[13]나 입력이 없이 출력만 하는 문제, 테스트 케이스가 하나만 있는 문제[14] 등에 사용된다. 그런데 스페셜 저지 문제는 스페셜 저지를 위한 파일 비교 소스가 특별히 필요하기 때문에, 아직 스페셜 저지가 적용되지 않은 스페셜 저지 문제들이 있다.[15]
2016년경부터 엄청난 성장세를 보이더니 현재까지도 빠른 속도로 성장하고 있는데, 2012년 사이트 시작 이후 벌써 제출횟수 4000만 회를 넘기고 가입자 수는 46만 명을 넘었다.[16] 그래서 아주 가끔씩 트래픽이 폭주하는 경우가 발생하기도 한다.
통계는 여기 또는 여기[17]에서 확인할 수 있다.
2018년 4월 25일 중국발 디도스 공격으로 서버가 마비되는 사건이 생겼다. 다행히 서버는 재개되었지만, 서버가 끊기거나 이상한 현상이 생길 수 있다는 운영자의 공지가 있었다.
2022년 5월 12일을 기준으로 코드업이 10주년을 맞았다.
2. 시스템 사양 및 컴파일러
- 시스템 사양 : 보안상 비공개
- 운영체제 : 보안상 비공개
- 주요 컴파일러 : C/C++ - GNU GCC/G++, Java - OPEN-JDK, Python - Python 3.10.6, PyPy3 - 3.9.16
원래 Pascal, Bash, PHP, Perl, C#의 언어의 제출을 2013년 9월부터 허용했었으나, 보안 문제로 2016년 4월 21일부터 제출을 막았다.
3. 채점 결과
- 대기 중 : 채점이 밀려서 아직 채점이 완료 되지 않은 상태
- 재채점 중 : 테스트 데이터를 다시 고친 경우, 해당 제출 코드를 다시 채점한 경우
- 컴파일 중 : 채점을 하기 위해 컴파일 하는 상태
- 채점 중 : 채점이 진행되고 있는 상태[18]
- 정확한 풀이 : 제출한 코드가 모든 테스트 케이스를 통과한 경우
- 표현 에러 : 출력 결과가 테스트 케이스와 유사하나, 공백, 빈 줄과 같은 사소한 문제로 인해 출력 결과가 일치하지 않는 경우
- 잘못된 풀이 : 출력 결과가 테스트 케이스와 다른 경우[19]
- 시간 초과 : 제출한 코드가 제한된 시간 이내에 끝나지 않은 경우
- 메모리 초과 : 제출한 코드가 허용된 메모리보다 많은 메모리를 사용한 경우[20]
- 출력 한계 초과 : 예상하는 출력보다 많은 출력이 발생한 경우
- 실행 중 에러 : 세그먼트 에러, 부동 소수점 에러 등과 같은 에러가 발생한 경우[21]
- 컴파일 에러 : 컴파일러가 제출 코드를 컴파일 하지 못한 경우[22]
4. 문제 분류
코드업은 문제가 나누어져있다.대략적인 문제 분류[23]는 다음과 같다.
- 1001~ 기초문제
- 2001~ 중급문제
- 4001~ 국내대회
- 4001 ~ : 교원프로그래밍 경진대회 기출문제
- 4201 ~ : 정보올림피아드 기출문제
- 5001~ 해외대회[26]
- 6001~ 파이썬 기초문제
- 6101~ 파이썬 numpy 100제
5. 사이트 관리
5.1. 운영
운영은 관리자 배준호(ID: admin) 한 사람이 혼자 도맡아 하고 있다. 그런데 이 admin이 교사인지라 바빠서 24시간 내내 사이트 관리가 어렵다 보니, 게시판에 가끔씩 영 좋지 않은 글들이 올라온다. 그리고 이런 글들이 올라오는 빈도는 2018년이 되면서 더 늘어났다. 보통 이런 상황이 발생한 경우 관리자가 해당 글을 삭제하고 그 글을 쓴 사용자의 글 작성 권한을 제한하는 등의 조치를 취하고 있기는 하지만, 아무래도 어그로성 유저들이 꽤 있다 보니 이런 상황을 근절하기가 힘들다. 게시판에 이상한 글이 보이면 즉시 관리자에게 제보하자.이 와중에 몇몇 몰상식한 사용자들이 코드업 내의 쪽지 기능을 부적절하게 사용한 탓에, 결국 2018년 1월 24일부터 100문제 이하로 푼 사람들은 쪽지 기능을 사용할 수 없게 되었다.
2018년 2월 21일부로 100문제 이하로 푼 사람들은 게시판 글 작성이 금지되었다.[27] 다음은 이 상황에 대한 관리자의 말이다.
죄송합니다. 도배, 스팸 글, 악의적 이용을 금지하기 위해 100 문제 이하로 푼 사람은 새 글 작성을 금지합니다!
100문제는 거의 기초 문제이니 책이나 인터넷 검색을 통해 해결하시기 바랍니다. 또는 이전의 질문들을 잘 보시면 거의 도움을 >받으실 수 있을 것입니다. 선의의 피해를 보시는 사용자 분들께 정말 죄송합니다.
100문제는 거의 기초 문제이니 책이나 인터넷 검색을 통해 해결하시기 바랍니다. 또는 이전의 질문들을 잘 보시면 거의 도움을 >받으실 수 있을 것입니다. 선의의 피해를 보시는 사용자 분들께 정말 죄송합니다.
2019년 9월 28일부터는 500문제 이상 해결한 사람들만 강의를 작성할 수 있도록 했다.
개인 강의가 변질되어 가고 있습니다.
다음 2가지 주의를 부탁드리고, 그에 따른 조치를 취하도록 하겠습니다.
1. 강의 내용없는 단순 문제 모음 글을 쓰지 마세요.(예: 쉬운 문제 모음 / 카우시리즈 모음 등)
► 발견 즉시 글을 삭제하고, 해당 사용자는 게시판 글 작성을 금지하도록 하겠습니다.(게시판 및 개인 강의 글 작성 모두 금지)
2. 단순 대답형 댓글은 쓰지 마세요.(예: 네 / 알겠습니다 / 올 솔브 / 2개 풀었어요 등)
► 지속적으로 이런 글이 많이 보이는 경우 해당 사용자는 게시판 글 작성을 금지하도록 하겠습니다.(게시판 및 개인 강의 글 작성 모두 금지)
다음 2가지 주의를 부탁드리고, 그에 따른 조치를 취하도록 하겠습니다.
1. 강의 내용없는 단순 문제 모음 글을 쓰지 마세요.(예: 쉬운 문제 모음 / 카우시리즈 모음 등)
► 발견 즉시 글을 삭제하고, 해당 사용자는 게시판 글 작성을 금지하도록 하겠습니다.(게시판 및 개인 강의 글 작성 모두 금지)
2. 단순 대답형 댓글은 쓰지 마세요.(예: 네 / 알겠습니다 / 올 솔브 / 2개 풀었어요 등)
► 지속적으로 이런 글이 많이 보이는 경우 해당 사용자는 게시판 글 작성을 금지하도록 하겠습니다.(게시판 및 개인 강의 글 작성 모두 금지)
관리자의 수고를 조금이라도 덜어주고 싶다면 사이트에서 절대 장난치지 말도록 하자. 많은 사람들이 사용하는 공간에서 장난을 치는 행위는 관리자에게도 피해를 주지만, 올바르게 사용하던 사용자들에게까지 피해를 주는 행동이다. CodeUp은 정보과학 공부를 하기 위한 곳이지 장난을 치는 놀이터가 아니다. CodeUp은 자기만을 위한 사이트가 아니라 몇만 명이 같이 사용하는 곳이라는 점을 꼭 기억하자.
게시판 관리자 [28]
gbshs161101 (2018.09.01 ~)
kimgihong38 (2018.09.01 ~)
o_o (2024.09.01 ~)
前 게시판 관리자
kkm0476 (2018.09.01 ~ 2019.08.31)
tlsdydaud1 (2018.09.01 ~ 2024.08.31)
2020년 8월 27일부터 블라인드 처리의 종류가 일반과 악성으로 나뉘었고, 악성 블라인드 처리를 당한 글이 5개 이상 있는 사용자는 게시판에 글을 쓸 수 없도록 바뀌었다. 악성 블라인드 처리를 당한 글은 자신이 직접 삭제할 수 없다. 또한 프로필에서 자신의 글 중 악성 블라인드 처리를 당한 글이 몇 개나 되는지 확인할 수 있게 되었다.
2023년 1월 15일 경, 사이트가 접속 불가 상태가 되었다. 개인 사정으로 인한 서버 중지가 원인이였다. 2023년 1월 15일부터 2023년 1월 18일까지 중지 될 예정이다.
2023 4월 경부터 광고가 사이트 상, 하단에 노출되기 시작했다.
5.2. 업데이트 현황
CodeUp이 2018년 1월 1일, 새해를 맞아 모바일에서도 편하게 볼 수 있도록 모바일 반응형 웹 레이아웃이 적용되었다.2018년 2월 13일부터 사용자 정보 페이지의 레이아웃이 예전과 다르게 변경되었다. 변경된 점은 크게 다음의 다섯 가지로 볼 수 있다.
- 글씨 크기가 약간 더 작아졌다.
- 소속이 비공개 처리되었다.[29]
- 제출 통계와 해결한 문제 목록의 위치가 뒤바뀌었다.
- 아이디 옆에 레벨이 추가되었다.[30]
- 아이디 글씨 크기가 일정 크기까지 점차 커진다.[31]
또한 2018년 2월 14일부터 푼 문제 개수에 따라 아이디 색상이 달라졌다. 푼 문제 개수별 색상 및 그에 해당되는 사용자 수는 다음과 같다.[32]
해결한 문제 수 | 색상 | 해당 사용자 수[33] |
1100문제 이상 | 검빨간색[34] | 42명[35] |
1000문제 이상 | 빨간색 | 31명 |
900문제 이상 | 주황색 | 45명[36] |
800문제 이상 | 보라색 | 46명 |
700문제 이상 | 파란색 | 106명 |
500문제 이상 | 청록색 | 811명[37] |
400문제 이상 | 초록색 | ????명 |
300문제 이상 | 연두색 | ????명 |
200문제 이상 | 황토색 | ????명 |
100문제 이상 | 갈록색 | ????명 |
50문제 이상 | 검은색 | ????명 |
50문제 미만 | 회색 | ????명 |
위쪽으로 올라갈수록 해당 사용자들의 수가 적어진다. 원래는 검빨강 아이디를 가진 사용자가 한 명도 없었으나, 2024년 11월 3일 기준으로 검빨강 아이디가 42개가 되었다. 한편 2019년 2월경부터 전체 순위 페이지 로딩 속도를 빠르게 하기 위해, 전체 순위에서 모든 사용자 목록을 보여주지 않고 상위 5000명만 보여준다.[38] 이는 2018년 5월 20일 기준으로 전체의 4.5퍼센트에 해당한다.
2018년 5월 25일부터 문제 페이지에서 내 소스 보기가 가능해졌다![39]
또한 2019년 봄에는 게시판의 열람 가능 범위가 2페이지까지로 제한되었다.[40]
2021년 2월 20일, Python 기초 100제가 따로 만들어지면서 유저 색상의 기준이 변경되었다.[41]
2021년 5월 16일 파이썬 버전을 3.8.10으로 업데이트하여 f-string을 사용할 수 있게 되었다[42].
2021년 6월 2일 파이썬 numpy 라이브러리를 추가하였다.
2021년 6월 7일 C++ 버전을 C++ 11에서 C++ 17로 업데이트하였다.
2021년 11월 26일 gcc 및 g++ 버전을 8.1.0으로 업데이트하였다.
5.3. CodeUp 2.0
2018년 12월 15일, CodeUp이 이전까지 오랫동안 사용하던 낙후된 서버 대신 새로운 서버로 교체하면서 CodeUp 2.0 버전이 되었다! 해당 공지 CodeUp이 CodeUp 2.0으로 바뀌면서 새롭게 추가/변경된 점이 몇 개 보인다.- 사이트 대문의 URL주소가 http://www.codeup.kr/JudgeOnline/index.php[43]에서 http://www.codeup.kr/index.php로 바뀌었다.[44][45]
- Python2 버전은 이제 제출 불가능하고, 소스 제출 페이지에서 제출 언어를 Python으로 선택하면 Python3 버전으로 채점된다.
- 기존 서버보다 속도가 대폭 빨라졌다.
- 라이벌 기능이 추가되었다. [내 정보]의 [나의 라이벌]에서 볼 수 있다.[46]
- 소스 제출 화면에 자동 완성 기능이 추가되었다.
- 수업/개인 강의 제목 검색을 할 수 있게 되었다.
- 2404번 404 Not Found 문제가 서버 상황과 맞지 않아 열람할 수 없게 되었다.[47]
5.4. CodeUp 3.0
2023년 5월 21일 CodeUp이 3.0으로 업그레이드 되었다.[1] 코드업과 함께하는 책 시리즈 저자 소개에서도 언급 되어 있으며 국립경상사대부고 정보 교사이다.[2] 2024년 11월 3일 오후 12시 기준[3] 2024년 11월 3일 오후 12시 기준[4] 관리자가 원래 경남정보고 선생님이었다.[5] 1000번대 488문제, 2000번대 346문제, 3000번대 199문제, 4000번대 402문제, 5000번대 169문제, 6000번대 104문제[6] 단순히 코드를 출력하는 것이라 이 문제 역시 초보자들의 흥미를 떨어뜨릴 수 있어 가려졌다. 문제를 보고 싶다면 여기를 보면 된다.[7] 후술하겠지만 스승의 날 한정 이벤트 문제이다.[8] 테스트 케이스에 오류가 너무 많은 관계로 가려졌다.[9] 스승의 날 기념 이벤트 문제로, 항시 접근가능한 것이 아니라 매년 스승의 날인 5월 15일부터 단 일주일 동안만 열람 가능하기 때문에 이 기간 동안에만 코드 제출을 할 수 있다. 그래서 이때를 놓치면 1년을 기다려야 한다[10] 2021년 4월 13일 문제집 기초1. 출력문에 잠깐 나왔다가 다시 비공개 전환되었다.[11] 현재 2404번 문제는 사이트가 개편되면서 풀 수 없게 되었다.[12] 일부 유저의 분탕질로 1105번과 함께 비공개로 전환되었다.[13] 대표적인 예시로 이 문제가 있다. 참고로 해당 문제는 사이트 내의 문제 중 가장 처음으로 SPJ가 적용된 문제이다.[14] 일부러 틀려서 정답을 보는 경우를 방지하기 위함이다.[15] 정답률이 0%인 스페셜 저지 문제들이 대부분 그런 류이다.[16] 하지만 사이트가 성장함에 따라 관심종자들의 유입 또한 늘어나게 되어 게시판이 더러워지는 등의 단점도 생겨났다.[17] codeup.tk를 운영하던 개발자가 도메인을 변경하면서 새로운 통계 사이트를 운영하고 있다.[18] 기존에는 테스트케이스가 없는 문제에 소스코드를 제출할 경우 이 상태에서 더이상 진행이 되지 않는 버그가 있었다. 현재는 테스트케이스가 없는 문제에 제출을 할 수 없도록 패치되어 이 문제점은 사라졌다.[19] 참고로 '잘못된 풀이'가 떴을 경우 어떤 입력 데이터에서 틀렸는지를 알려 준다. 해당 테스트 케이스의 입력과 정답, 그리고 내가 출력한 답을 최대 1024바이트까지 보여준다. CodeUp의 특별한 점이자 장점이라고도 할 수 있는 부분. 그래서 자신의 코드가 어디에서 틀렸는지 찾는 것이 비교적 용이하다. 단, 테스트 케이스가 공개되는 점을 악용하여 문제에 맞는 알고리즘 없이 특정 테스트 케이스를 저격하여 답을 출력하는 치팅 코드 를 작성하여 부정하게 문제를 풀 수 있다는 단점 또한 존재한다. 스페셜 저지의 경우 오류 정보를 보여주지 않는다.[20] 단, 메모리를 '조금' 초과했을 경우에만 이 에러가 뜬다. 메모리를 아주 많이 초과하게 되면 메모리 초과가 아니라 실행 중 에러로 나오게 된다.[21] 여담으로 게시판에 올라오는 에러 질문들 중 실행 중 에러에 대한 질문들이 아주 많다. Segmantation Fault가 떴다면 배열 크기를 좀 더 크게 잡아보거나 배열 인덱스에 음수가 들어가는지 확인해 보고, Floating Point Exception이 떴다면 0으로 나누는 경우가 있는지를 확인해 봐야 한다. 대부분의 실행 중 에러는 이를 통해 해결할 수 있다.[22] '컴파일 에러'를 클릭하면 코드에 대한 에러 메시지가 나오기 때문에 이를 잘 읽어보면 어떤 부분에서 컴파일 오류가 발생했는지를 알 수 있다. 제출 언어를 잘못 선택해서 컴파일 에러가 나는 경우도 꽤 많다.[23] 코딩에는 정답이 없고 이것도 대략적인 분류일 뿐이다.[24] 입출력문, 조건문등 초보자를 위한 기본적인 문제들이다[25] STL : stack, queue, list, vector, set, map 등[26] USACO 등[27] 원래는 20문제가 기준이었다.[28] 원래는 1년이라는 임기가 있었으나 이 사용자들에게 게시판 관리를 계속 맡기겠다는 관리자의 의견에 따라 영구 관리자로 지정되었다. 추후 게시판 관리자들이 스스로 그만두겠다는 의사를 표할 경우 충원하게 된다.[29] 원래는 Email만 비공개 처리되어 있었다. 소속이 비공개 처리된 이유는 불명.[30] 레벨은 자신이 푼 문제 개수를 10으로 나눈 몫이다. 원래는 100으로 나눈 몫이었으나 레벨 간격이 너무 컸는지 이와 같이 바뀌었다. 레벨은 어디 쓰이는 것은 아니고 그냥 장식용이다.[31] 이것은 2018년 2월 22일부터 적용되었다. 하지만 이것 때문에 프로필 로딩 속도가 느려져서 결국 이 기능은 다시 사라졌다.[32] 이 색상들은 CodeForces의 Rating별 색상 순서와 동일하다. 단 50~399문제에 해당하는 색상은 codeforces의 Rating 색이 아니다.[33] 2024년 11월 3일 12시 기준.[34] codeup처럼 맨 앞의 한 글자만 검은색이고 뒤의 글자들은 모두 빨간색이다. 또한, 알고리즘 관련 커뮤니티에서는 누텔라라고 불린다.[35] 1400문제 이상이 3명, 1300문제 이상이 5명, 1200문제 이상 9명, 1100문제 이상이 25명이다.[36] 관리자 계정 admin이 제외되어 있다.[37] 모범소스 계정 solution이 제외되어 있다.[38] 물론 전체 순위 페이지에서 안 보인다 뿐이지, 링크를 이용하면 5000등 이후의 등수 현황도 볼 수 있다. http://www.codeup.kr/ranklist.php?start=(등수) 형식으로 입력하면 (등수 + 1)등부터 (등수 + 50)등까지 보여준다.[39] 한 이용자의 건의사항을 일주일 만에 적용시킨 운영자 갓갓..[40] 이것의 목적은 오래된 글들을 찾아서 댓글을 다는 것(끌올)을 방지하려는 것이다.[41] 600문제 이상에 해당하는 검빨간색, 빨간색, 주황색, 보라색, 파란색의 커트라인이 100문제 상승했다. 나머지는 변동이 없다.[42] f-string은 파이썬 버전 3.6부터 가능하다.[43] 현재 이 주소로 들어가게 되면 "즐겨찾기 주소를 변경하시기 바랍니다."라는 알림이 뜨며 바뀐 주소로 리다이렉트 된다.[44] 물론 여전히 codeup.kr로 접속 가능하다.[45] 후술하겠지만 HTTPS가 적용되어 링크로 다시 바뀌었다.[46] 나의 라이벌은 최대 3명까지 등록할 수 있으며, 사용자 정보 페이지에서 자신을 라이벌로 등록한 사람의 수를 볼 수 있다. 다만 누가 자신을 라이벌로 등록했는지는 알 수 없다.[47] 이 사실이 이 문제의 답에 대한 힌트이기도 하다.