티스토리 뷰
(2018.11.07: ICPC 대회 난이도에 별점을 매겼습니다. 사실 제일 중요한 건 난이도인거 같아서 마음에 좀 걸렸는데, 이렇게 하면 조금 더 가시성이 있지 않을까 싶네요.)
공부하기 싫어서, 제가 평소에 어떻게 연습하는 지에 대해서 간략히 글을 씁니다.
이 글은 연습 방법론, 예를 들어 하루에 몇 시간씩 하는지 / 풀이는 언제 보는지 / 뭐 먹고 사는지 (...) / Secret Tip이 있는지 (……) 에 대해서는 전혀 언급하지 않습니다. 저러한 내용에 과도하게 걱정하시는 분들이 참 많은데, 별로 안 좋은 습관이라고 딱 잘라 말하겠습니다. 보통 상위권이라고 저런 거에 대단한 철학이 있지는 않습니다. 개인 성격 따라 제각기 하는 방법이 다릅니다. 본인 성격에 맞는 방법을 찾기 위해서는 시행착오 말고는 답이 없으니까 그런 거 걱정할 시간에 문제를 많이 풉시다.
대신, 이 글은 어디서 공개하는 무슨 무슨 사이트와 무슨 문제들이 좋은지에 대한 정리를 목표로 합니다. 상위권과 하위권에서의 정보 격차라고 하면 이런 정보의 부재가 제일 중요하다고 봅니다. 물론 이것 역시 보통 시행착오를 통해서 알아나가는 것이고 특별한 답은 없습니다. 그래도 아름다움 / 편리함의 기준은 그나마 사람마다 비슷한 편이라, 이 글을 통해서 시행착오를 어느 정도 줄일 수 있겠네요.
저 혼자 작성한 리스트고 개인적인 취향이 반영되어 있음을 명시해 주세요.
Online Contest
주기적으로 열리는 온라인 대회는 정기적으로 실력을 점검하고, 경험을 쌓는 데 도움이 되며... 사실 그냥 재미있습니다. 꾸준히 리마인드 될 수 있다는 게 제일 좋은 것 같습니다.
강력 추천 AtCoder: 까일 부분이 딱히 없는 아주 좋은 사이트입니다. 문제 수준도 높고 풀이도 항상 제공하고 채점도 잘 됩니다. 문제 수준의 하한이 높다는 점이 특히 강점입니다. 앳코더는 진행 상황을 볼 수 있는 Atcoder Problems 라는 사이트가 있는데 이게 정말 좋습니다. 나쁜 문제가 별로 없고, 문제 난이도도 다양한 편이라, 세로 줄 하나 잡고 올클 스터디 해도 좋아요.
추천 CSAcademy: 여기도 아주 괜찮습니다. 앳코더의 마이너 열화판.
추천 Codeforces: 툭하면 까이지만 그래도 이만한 사이트가 없습니다. 비합리성이 꽤 있으나 (semi-rated 사건 등), 그래도 2018년 기준으로 문제 수준도 괜찮고 풀이도 다 제공합니다. 특히 (적당히 거른다는 가정 하에) 커뮤니티에 유용한 정보가 꽤 많습니다.
Topcoder: 요즘 열심히 까이고 있으나 여전히 많이 고평가 되어 있는 사이트입니다. 레드 근처 아니면 할 필요가 없다고 생각합니다. 시간이 짧은 건 좋다면 좋고 나쁘다면 나쁜건데 요즘 탑코더 문제 수준을 보면 장점에 더 가까운듯… 하지만 AtCoder 수준의 좋은 문제들이 가끔 나오는 건 사실입니다. 링크 달고 싶은데 뭘 링크라고 해야 할 지 모르겠네요. 코드포스 눈팅하시면 Topcoder SRM 알림 글이 가끔씩 뜨니까 그거 보고 참가하시면 됩니다.
Codechef: 구데기로 악명이 높고 실제로도 그렇지만, 최근 롱 챌린지를 읽어보면 약간 저평가 되어 있는 것 같습니다. 문제 수준은 탑코더와 비슷합니다 (가끔 좋은 문제가 나오는 것 포함). 다만 탑코더 대비해서 시간은 훨씬 더 잡아먹습니다. 레드 미만은 할 필요가 없고, Long Challenge 한정 온라인 저지 느낌으로 접근하면 좋은 것 같습니다. 여담으로 롱 챌린지에서는 상위 입상자에게 돈을 주는데, 보통 돈을 받으려면 구데기 MM 문제를 풀어야 합니다. 우웩
Hackerrank: Codechef와 비슷. 여기는 코드셰프보다 시간을 조금 덜 뺏고, 돈을 좀 더 많이 줍니다. 돈 주는 대회 있으면 보통 저 혼자 조용히 칩니다. ^^
Olympiad
ICPC와 더불어 대회 양대산맥입니다. 개인이 5시간동안 3문제씩 푸는 대회 유형이다 보니 키보드에서 손 놓고 죽어라 생각하는 타입의 문제들이 보통 많이 나옵니다. 저는 OI가 알고리즘 문제 풀이의 정수라고 생각합니다.
강력 추천 OI Checklist: 어려운 거 / POI 채점이 잘 안되는 거 빼고는 정말 괜찮다고 생각합니다. 초보자용은 아니나 문제 퀄도 전반적으로 괜찮고 스터디 용으로 사용하기에도 좋습니다. 많이 풀어주세요.
추천 USA Computing Olympiad: 전통의 소 농장은 여전히 훌륭한 트레이닝 사이트고 특별히 거를 게 없습니다. 특히 튜토리얼 삼을 문제가 많아 PS 입문/초심자 분들에게 강력히! 추천합니다. 다만 최상위권한테는 약간 애매한듯. 모든 문제에 대해서 풀이를 제공해 주고, 채점도 BOJ 및 공식 사이트가 잘 해줍니다. 겨울에는 온라인 대회를 열어주기 때문에 Online Contest와도 겹치네요.
추천 Croatian Open Contest in Informatics : 역시 전통의 COCI는 풀이도 항상 제공해 주고 문제도 괜찮습니다. 요즘은 풀이 제공도 불성실하고 문제 수준도 애매한 것 같으나.. 아무튼 얘는 USACO랑 컨셉이 비슷합니다. BOJ에 여전히 문제가 많고, 특히 그 중 대다수가 번역이 되어 있어서, 업솔빙은 여전히 추천. 역시 겨울에는 온라인 대회를 열어주기 때문에 Online Contest와도 겹치네요.
추천 한국정보올림피아드 불친절해서 그렇지 문제는 꽤 괜찮습니다. 국산 사랑해 줍시다.
ONTAK Training Camp: 인생에 자극이 필요하신 분들에게 추천합니다.
Balkan Olympiad in Informatics: 2011/2012년 문제가 아주 좋습니다.
강력 추천 CERC: 개인적으로 CERC 문제를 아주 좋아합니다. OI 이상의 퀄리티로 꾸준히 출제되는 거의 유일한 ICPC 대회라고 생각합니다. BOJ에 2010년 이후 문제는 전부 올라와 있으며, 풀이 슬라이드도 대부분 제공이 됩니다. (난이도: ★★★★★)
추천 Japan Alumni Group: Asia Regional Practice / Spring Contest / Summer Camp가 있습니다. 각각에 대한 설명은 따로 아래에 후술합니다. 문제 수준은 전반적으로 높습니다. 풀이는.. 일본어로 친절하게 써져 있습니다.
- Asia Regional Practice는 리저널 대비 문제입니다. 문제가 재밌습니다. 백준에서 그냥 풀어보면 되니 많이 해 보세요. (난이도: ★★★★)
- Spring Contest는 월파처럼 독한 문제들이 출제됩니다. 충격적인 문제가 꽤 있었으나 요즘은 안 하는 것 같군요. 이 친구는 어려워서 더 재밌는 것 같습니다. (난이도: ★★★★★)
- Summer Camp는 앳코더를 잘 뒤져봐야 나옵니다. 찾기만 하면 독하고 재미있는 문제들을 많이 푸실 수 있습니다. (난이도: ★★★★)
추천 NAIPC: 2016년 이후 문제는 상당히 재밌습니다. 다만 풀이는 불친절. 난이도는 어렵습니다. (난이도: ★★★★)
추천 World Finals: 월파는 보통 좋은 문제가 꾸준히 출제되었고, 2015 / 2017년 문제들은 매우 좋은 셋입니다. 하지만 나쁜 문제들도 자주 출제되는 것이 함정입니다. 뭐 그래도 평균적으로 좋은 셋에 가깝습니다. 난이도는 당연히 어렵습니다. (난이도: ★★★★★)
추천 NEERC: 년도나 세터를 타는 것 같지만 좋은 문제가 꾸준히 있는 편입니다. 특히 2012 / 2015 / 2016년을 추천. 난이도는 어렵습니다. (난이도: ★★★★)
NEERC Subregional: 아주 많은 Subregional들이 있으나 일반적으로 Southern / Northern / Moscow 세 곳만 언급이 됩니다. 나머지는 대회가 이상하거나 아니면 돌려보는 것이 불가능할 거에요. Southern Subregional은 재밌습니다. 항상 풀면 뿌듯했던 것 같습니다. Northern / Moscow는 전 많이 안 해 봤습니다. 사실 저는 별로 좋은 기억이 없는데, 코드포스에 보면 상당히 많은 사람들이 연습 셋으로 사용하는 것 같네요. 난이도는 중간 / 약간 어려운 편입니다. 링크는 Gym에서 찾아보면 잘 나와요. (난이도: ★★★)
NWERC + Subregional: NWERC Subregional (BAPC / GCPC / NCPC / UKIEPC)은 대회 난이도가 다른 대회에 비해 쉬운 편이고, 풀이가 항상 제공되어서 실력을 높이기 좋은 셋 중 하나입니다. 백준에서 채점하기도 쉽네요. 다만 상위권에게는 애매한 것 같습니다. Subregional 중에서는 NCPC가 제일 유명하고 문제 수준도 높습니다. NWERC는 그렇게 난이도가 낮지 않고요.. 셋은 뭐 그냥 괜찮습니다. (난이도: ★★ ~ ★★★)
Pacific Northwest Regional Contest: 2014년 이후 대회는 Div 1 / 2가 모두 있고 풀이도 전부 제공합니다. Div 1도 쉬운 편이고, Div 2는 대놓고 프로그래밍 대회 초심자를 타깃으로 한 대회니 입문하기에는 가장 좋은 것 같습니다. 문제 퀄리티는 2014년 이후로 괜찮습니다. NWERC Subregional과 함께 초보자에게 추천하기 좋은 연습 셋입니다. (난이도: ★ / ★★)
Latin America Regional Contest: 저는 많이 안 풀어봤으나 제 주위에서 추천을 많이 받았습니다. 문제 수준이 높고, 난이도도 적당해서 실력을 높이기 좋은 셋이라고 알고 있습니다. 대충 찾아보니 풀이는 좀 불친절한 것 같군요. (난이도: ★★)
Korea Regional: 문제 수준은 평균적으로 크게 나쁘지 않습니다. 이것은 rng도 인정한 팩트 (...) 다만 문제 수준에 변동성이 크고 (ex: 2015년 대전) 잡음도 꽤 나오는 리저널입니다. 친절한 리저널도 아니어서 연습하기도 쉽지 않으나 그래도 BOJ와 다양한 기여자 분들 덕분에 많이 나아졌습니다.
올해 대회는 좋을까요? 저는 잘 모르겠습니다.괜찮았다고 합니다. ㅋㅋ (난이도: ★★★)Japan Regional: JOI / JAG / 앳코더 영향을 받고 있는지 문제 수준이 갈수록 높아지고 있습니다. 그래서 아주 좋은 문제들도 많아요. 옛날 문제는 구데기인 거 같습니다… 문제는 구데기일 때도 어려웠고 지금도 어렵습니다. (난이도: ★★★★)
OpenCup: 러시아의 마조히스트들이 만들어낸 애증의 오픈컵입니다. 여기 짧게 설명하기에는 너무 독특한 시스템이군요… 말이 많지만 아무튼 월드 파이널 레벨에서 팀으로 연습하고 싶다면 꼭 거쳐가야 할 곳이라고 생각합니다. 궁금하신 분은 개인 연락 주세요. (난이도: ★★★★★)
강력 추천 oj.uz: Olympiad 섹션의 문제들이 많이 올라와 있다는 것 외의 추가적인 장점은. 가끔씩 갓갓분들이 좋은 대회를 던지고 간다는 점 같습니다. 여기서 확인 가능. 저 문제들은 ojuz에서만 독점적으로 채점이 됩니다.
강력 추천 Baekjoon OJ: 더 이상의 자세한 설명은 생략한다.
Szkopul: 예전 ONTAK / POI, 그리고 AMPPZ / PA 라는 대회가 있습니다.
DMOJ: 일반적인 문제들은 무난한 OI 스타일입니다. 하지만 이 저지의 핵심은 그게 아니라 40~50 point 대의 심히 뒤틀린 문제들에 있는데…. 예를 들면 이런거 이런거 이런거
UOJ: 여기부터는 저도 소문만 들었습니다. 엄청난 것들이 있다고 들었습니다. ONTAK으로 만족이 안되는 마조히스트들에게 추천합니다. matthew99의 설명을 들어보면 NOI / 清华集训 / WC / CTSC가 붙어있는 게 핵심인 거 같네요. 흠. 저도 잘 모르겠습니다. 누가 후기 좀…
SGU: 여기 문제가 여전히 풀만하다는 이야기를 가끔씩 듣고 있습니다. 전 잘 모르겠는데 후기 좀..
ICPC-style
역시 대회 양대산맥입니다. 팀으로 5시간동안 12문제 정도 푸는 유형입니다. 굉장히 넓은 분야의 지식이 테스트되며 시간당 구현량이 높은 편입니다. 대신 쉬운 문제들도 많이 나와서 OI보다 훨씬 더 다양한 스펙트럼의 사람들을 수용할 수 있습니다. OI가 질이면, ICPC는 양으로 승부한다고 보면 됩니다. 종류가 매우 많아서 이쪽 단락은 좀 깁니다.
Online Judges
시간 제한 없이 집에서 손 놓고 자유롭게 문제 푸는 공간입니다. 문제를 하루고 일주일이고 풀어도 아무도 뭐라고 안하는 좋은 사이트입니다. 그만큼 풀 수 있는 문제 선택지도 무지막지하게 많습니다. 단점은 뭘 풀어야 할지 모르겠다는 것. 야생과도 같은 공간입니다.
'공부 > Problem solving' 카테고리의 다른 글
2018.11.02 problem solving (0) | 2018.11.02 |
---|---|
2018.10.16 problem solving (1) | 2018.10.16 |
ACM-ICPC Seoul Preliminary 2018 (5) | 2018.10.07 |
ARC 103 F. Distance Sums (1) | 2018.09.29 |
IOI 2018 Day 2 (3) | 2018.09.22 |
- Total
- Today
- Yesterday