PS/후기

[ICPC Sinchon] 2021 Summer Algorithm Camp 후기

dong_gas 2021. 8. 25. 00:42

 8월 21일 캠프 모의고사를 끝으로 한 달 반의 ICPC 신촌 연합 알고리즘 캠프가 모두 끝났다.

이런 글을 써본 적이 없어서 부끄럽지만 후기를 써보려고 한다.

 

 


Sinchon 2021 Summer Algorithm Camp?

 

https://icpc-sinchon.io/

 

 

Main | ICPC Sinchon

신촌지역 대학교 프로그래밍 동아리 연합

icpc-sinchon.io

 

 서강대학교, 숙명여자대학교, 연세대학교, 이화여자대학교, 홍익대학교 프로그래밍 동아리의 연합 동아리에서 여는 캠프이다. 여름과 겨울에 열리는 것 같다. 나는 이번이 첫 참여인데, 이미 3번의 캠프가 있었나 보다. 

 

 

 캠프에서는 수업을 진행한 뒤, 캠프 컨테스트를 본다. 그리고 마지막에는 SUAPC라는 팀 대회도 개최한다. 이번 캠프 참가비용은 3만 원 혹은 6만 원이었다. 참가비가 3만 원인데, 6만 원을 내고 모든 수업에 출석하고 대회도 참가하면 6만 원을 전부 돌려준다. 3만 원을 내고 참가하면 열심히 안 할 것 같아서 6만 원을 내고 참가하였다.

 

 


 

캠프 참여 전의 나

 

 나는 22살이지만 1학년이다. 재수끝에 붙은 학교를 비대면으로 다니면서 정말 얻은 게 없었고, 반수를 시작하였다. 전적대에서 비대면으로 한 학기 다니면서 요즘 같이 비대면으로 모든 것이 진행될 때에는 내가 무언가 찾아서 하지 않으면 대학에서 얻을 수 있는 게 없다고 느꼈다. 그래서 이번에는 입학하자마자 과 단톡에 올라온 학회 홍보글을 보고 학회를 지원했다. 그중 하나가 Sogang ICPC Team이다.

 

 

 이 당시에 나는 1년 전 학교에서 포인터부분 전까지 C언어를 배운 것이 전부였다. 뭐 잘 기억도 나지 않았지만..

다행히 학회에서 1학기에 기초반 수업을 열어주셨고, C++을 배웠다. 또한, 학교 수업에서 Python을 배웠다. 기초반 수업을 들으면서 백준에서 문제를 풀었는데, 뭔가 재미가 있었고 누가 시키지 않아도 종종 백준에서 문제를 풀곤 했다. 여튼 캠프에 참여하기 전에는 solved.ac기준 실버1 정도였고, 200문제 정도 해결한 상태였다. (그중 147문제가 브론즈, 51문제가 실버였다.......)

(https://dong-gas.tistory.com/3 200문제 후기) 

 

 

 여튼 1학기가 종강하고 나는 브론즈와 쉬운 실버 문제들만 풀 수 있는 수준이었다. 그리고 dp, graph, tree, greedy 등의 유명한 주제들을 배운 적이 없어서 풀 수 있는 문제들이 많이 없던 상태이다.

 

 


 

초급반 수업

 

 수업은 초급과 중급으로 나누어져 있었고, 당연히 초급에 참가하였다.

강의는 rebro(pjh6792)님과 pinebananais님이 하셨다. pjh6792님의 수업은 6번 모두 실시간으로 참여하였고, pinebananais님의 수업은 알바와 겹쳐서 주말에 녹강으로 들었다. 실시간 강의와 녹화 강의 모두 제공해주는 점이 정말 좋았다. 그렇지만 나는 다음에도 참여하게 된다면 최대한 실시간 강의로 듣고 싶다. 녹화 강의로 듣게 되면 집중도 잘 못하는 것 같고, 자꾸 밀리게 되더라.....

 

 

 pjh6792님은 모르는 사이지만 가끔 학회 연습셋같은 곳에서 엄청나게 잘 푸시는 걸 본 적이 있다. pinebananais님은 중급반 수업을 맡으셨던 분이라고 들었다. 두 분에게 정말 좋은 수업을 들은 것 같다. 특히 강사분들의 개인적인 tip이나 강사님들의 코드를 보고 정말 많이 배운 것 같다. ppt자료도 양이 매우 많은데, 정말 고생하셔서 만드신 것 같다. 감사합니다!

 

 

 초급반 수업의 커리큘럼은 다음과 같았다. 4회차부터 11회 차까지는 모두 처음 배우는 내용들이었다.

 

 초반에는 수업 내용도 어렵지 않고, 연습문제들도 어렵지 않아서 숙제로 내주시는 필수 문제와 연습문제 모두 풀었다. 그러나, 4주 차부터는 좀 버거웠다... 수업을 들을 때에는 크게 어려운 부분이 없었지만, 문제들이 빡셌다.... 캠프 참여 전에는 골드 문제를 단 두 문제만 해결했었는데, 출석 문제에 골드, 플레티넘 문제들이 막 나오니까 어지러웠다... 게다가 다른 사람들은 잘 푸는 걸 보니까 좀 힘들었다... 그래도 내가 쉽게 풀 수 있는 문제들이 아니었기 때문에 더 많이 배운 것 같다. 내 힘으로 풀고 나면 정말 행복했고, 얻은 것도 많다고 생각한다!

 

 

 그리고 이번 캠프에서 내 구현실력이 정말 안 좋다고 느꼈다. 방법을 알아도 코드 작성을 잘 못하겠고, 코너 케이스를 코드에 반영하는 것이 어려웠다. 경험이 부족해서 그런 것 같은데, 많이 풀면 괜찮아지겠지..? 아 그리고 캠프 일정이 주 2회였는데 이게 꽤 힘들어서 문제를 복습할 시간이 많이 부족했던 것 같다. 개강 이후에는 이번 캠프에서 어려웠던 문제들을 복습할 예정이다.

 

 

 여튼 꾸역꾸역 문제를 풀어서 11회 차까지 모두 출석하였다! (없던 6만 원이 생긴 기분이라 정말 좋다 ㅎㅎ)

 

 


 

2021 ICPC Sinchon Summer Algorithm Camp Contest - 초급

 

 캠프 기간동안, 꽤 재밌게 문제들을 풀었었다. 캠프 콘테스트 전까지...

이번 캠프 컨테스트는 내 인생 첫 대회였다. 이번 대회 참여 전에 예전 콘테스트 문제를 푼 적이 있었는데, 생각보다 어렵지 않아서 4개, 못해도 3개 정도는 해결할 줄 알았다. 그러나 7문제 중에서 2문 제 만 해결하였고, 정말 절망적이었다.

 

ㅠㅠ;

 

 타임라인은 다음과 같다.

 

 

A 이진수 나눗셈 [0:00~0:10]

 이 문제부터 꼬였다. 처음에는 별생각없이 이진수를 십진수로 바꾸어 풀려고 했다. 당연히 시간 초과 나고 B로 넘어갔다.

 

 

C permutation making [0:10~0:33]

 B와 C를 읽어보고 뭔가 해볼만 한 것 같아서 도전했다. 이 때는 수업 때 배운 next_permutation을 이용해서 그때마다 조건을 만족하는지 체크해보고 조건을 만족하면 출력하게 하였는데, 당연히 시간초과나고 B풀러 갔다. 지금 쓰면서 느끼는 게 A번도 그렇고 C번도 그렇고 이런 풀이를 왜 시도했는지도 모르겠다. 제출해보지 않아도 시간초과가 나는 걸 알 수 있는데...ㅋㅋ

 

 

B 송이의 카드게임 [0:33~0:51]

  문제 읽자마자 예전에 풀었던 요세푸스? 문제가 떠올랐고, queue를 이용하여 구현하여 바로 정답을 받았다.

 

 

A 이진수 나눗셈 [0:52~1:28]

 A니까 쉽겠지라고 생각해서 다시 천천히 생각해보니 올바른 풀이가 떠올랐다. 그래서 제출했는데 자꾸 런타임 에러가 뜬다. k>=n인 경우를 고려하고 이것저것 손을 봐서 겨우 런타임 에러를 없앴는데, 2번이나 더틀렸다... 0으로만 이루어진 이진수는 항상 나누어 떨어지는 것을 전~~~혀 생각지 못하고 있다가, 겨우 찾아서 드디어 맞았다. 이때가 벌써 15시 28분이었다. 3시간 중 반이 지났는데, A, B밖에 못 풀어서 슬펐다...

 

 

C permutation making [1:28~2:03]

 이것저것 생각해보면서 3번정도 더 제출하였고, 당연히 다 틀렸다 ㅎㅎ. 그리고 스코어보드가 프리즈 되었는데, 사람들이 C를 잘 풀어서 진짜 절망적이었다. 그래도 50분 정도 남아있어서 D로 넘어갔다.

 

 

D 도도의 음식준비 [2:03~3:00]

 문제를 풀면서 이분탐색인 것을 알아내었고, 격려를 하는 건 Greedy한 줄 알았는데 아니었다. 수많은 반례가 있었다.

그리고 대회가 끝났다. 그래도 이분탐색을 할 생각은 해서 다행이다. 격려는 브루트포스를 통해 모든 경우를 다 확인해야 한다. C값이 작은 것에서 그걸 알았으면 좋았을 텐데...

 

 

 

 18등으로 대회를 마무리하였다. 내 실력을 잘 알 수 있었다 ㅎㅎ;

수상이나 높은 순위에 대한 욕심은 없었다. 근데 막상 대회에 참여하니까 승부욕이 생기더라.... 좀 신기했다. 대회를 잘 보려면 그에 맞는 준비도 꽤 필요하다고 느꼈다(수능처럼 ㅎㅎ... ). 겨울에 또 참여하게 되면 순위권을 노려보고 싶다. 

 

 


 

마무리

 

 이번 캠프를 하면서 정말 많은 걸 배운 것 같다. 다양한 주제를 배우면서 내가 풀어볼 수 있는 문제들이 많이 생겼다. 브론즈나 실버밖에 못풀었었는데, 이제는 골드나 쉬운 플레티넘 문제들을 도전해볼 수 있다. 그리고 다른 열심히 하는 사람들에게 자극도 많이 받았고.... 뭔가 더 잘하고 싶은 욕심도 생긴 것 같다. 무엇보다도 6만 원 환급을 위해 억지로 꾸역꾸역 캠프에 참가할까봐 걱정했었는데, 재미를 느끼면서 활동한 것 같다(이게 가장 중요하지 않을까? ㅎㅎ).

 

 

 캠프 운영해주시는 분들 덕에 정말 좋은 경험을 한 것 같다. 정말 감사하다.

또, pjh6792,pinebananais 두 분도 좋은 강의 해주셔서 감사하다고 말하고 싶다.

 

 

 아 그리고, p_jun도 맨날 내 코드 봐주느라 고생했어 ㅎㅎ 고맙다!