알고리즘 온라인 저지

(온라인 저지에서 넘어옴)
백준 온라인 저지

주어진 문제가 있고, 문제에 대한 답을 구하는 프로그램컴퓨터 과학에서 다루는 알고리즘을 사용하여 작성 후, 이를 제출하면 미리 준비된 테스트 데이터를 적용하여 자동으로 채점하는 시스템 또는 사이트를 뜻한다. ACM ICPC, 정보올림피아드 등과 같이 유명한 프로그래밍 대회에서 출제되는 문제와 유사한 문제를 다루므로, 그러한 대회들을 준비하는 데에 많이 활용된다. 온라인 저지 사이트에서 자체적으로 프로그래밍 대회를 진행하는 일도 있다.

온라인 저지에서 제공하는 문제를 풀기 위해서는 기본적으로 익숙하게 구사할 수 있을 정도로 잘 아는 프로그래밍 언어가 있어야 하고, 알고리즘에 대한 기본 지식과 함께 문제를 분석하여 수학적으로 모델링하고 최적화 할 수 있는 능력이 요구된다. 여기에 자료구조에 대한 지식도 있다면 더욱 좋다.

온라인 저지 문제의 정답에 해당하는 풀이법은 보통 단 한 가지만 존재하지 않으며, 문제에 주어진 실행 제한 시간 안에 작성한 프로그램이 입력받은 테스트 입력 데이터에 의해 출력한 결과 데이터가 채점용 정답 데이터와 일치하면 모두 정답이다. 따라서 사용할 수 있는 모든 방법을 동원하여 프로그램을 작성하면 된다. 사용 가능한 메모리 제한이 있는 경우가 많으며, 사용하는 언어에 따라 시간 제한이 다를 수도 있다. 각 언어별로 실행 속도가 다르기 때문으로, 최적의 알고리즘을 사용한다면 풀릴 정도로 주는 게 정상.

또한 성공한 프로그램의 경우는 다른 사람들의 코드와 비교하는 기능을 제공하는 경우가 많다. 랭크를 매길 경우 보통 실행 시간, 사용 메모리, 프로그램의 길이 등을 기준으로 한다. 길이를 극단적으로 줄인 코드를 보면 경이로울 정도.

이 문서는 알고리즘 문제 풀이를 공부하거나 ACM ICPC, 정보올림피아드 등의 프로그래밍 대회를 준비하는 사람들을 위해 도움이 되는 온라인 저지 사이트 목록(특히 국내 사이트)를 정리하기 위해 생성되었다.

국내[편집 | 원본 편집]

무료 또는 부분유료[편집 | 원본 편집]

학교에서 운영하는 사이트[편집 | 원본 편집]

대학교[편집 | 원본 편집]
고등학교[편집 | 원본 편집]
학원[편집 | 원본 편집]

유료[편집 | 원본 편집]

해외[편집 | 원본 편집]

  • Codejam, https://code.google.com/codejam/contests.html
    • 매년 구글에서 주최하는 프로그래밍 대회이다. 역대 문제들과 여러 다른 대회의 문제들을 풀고 테스트할 수 있다. 테스트를 할 데이터 파일을 받아서 실행하고 출력물을 파일로 저장해서 보내면 답을 확인해준다.
  • Project Euler, https://projecteuler.net/
    • 국내에 있는 그거다. 여기는 영어버전. 물론 이쪽이 원조다.
  • Leetcode OJ, http://leetcode.com
    • 코딩 인터뷰에 자주 나오는 문제들 위주로 구성되어 있으며, 입출력 틀은 이미 정해져 있고, 프로그래머는 내부의 알고리즘만 짜면 된다. 기존 저지와 달리 어떤 테스트케이스를 통과하지 못했는지 확인할 수 있다.

관련 문서[편집 | 원본 편집]

관련 링크[편집 | 원본 편집]