전체 글 104

대회후기: Educational Codeforces Round 101 (Rated for Div. 2)

2개월만에 참여하는, 종강 후 첫 대회이다. A: Regular Bracket Sequence A번 문제 치고 문제가 복잡해서 시간을 많이 뺐겼다. 6분에 AC B: Red and Blue 각각의 누적합 최댓값을 더해주면 된다. 이게 왜 11분 걸렸지..? 17분에 AC C: Building a Fence 각 x축 위치마다, fence를 build할 수 있는 구역이 하나의 연속된 구간으로 정해짐이 문제 풀이의 핵심이다. $O(n)$으로 이 구역을 계산해나가면 된다. 43분에 AC D: Ceil Divisions 정말 많은 시간을 투자한 문제다. 대회 종료 후 두명의 친구에게 물어본 결과, 세명이 전부 다 다른 풀이로 해결했었다. $n$과 하나의 숫자만을 남기고 전부 다 $1$로 바꿔놓고, 두 숫자를 남은..

반년기록의 필요성

대학글쓰기 과제 때문에 미칠 것 같다는 생각을 하던 와중, 이번 학기와 지난 3학기의 로드를 돌아보게 되었다. 대학에 입학한 지 거의 2년, 이제 4번째 학기이다. 지금 안그래도 글쓰기 과제중이라 여기다가 또 장황하게 가다듬어서 글을 쓰고싶지는 않다. 그래서 간단하게 말하자면, 매번 나는 뭔가 많이 하는데, 그 뭔가가 뭐였는지는 반년만 지나도 잊게된다. 기억이 나더라도, 결과물 위주의 기억만 날 뿐, 그 당시에 내가 어떤 활동에 의미를 두고 활동했는지, 혹은 어떤 수업과 일이 힘들었는지의 기록이 남지 않는다. 매 학기 내가 무슨 일을 했는지는 이렇게 그냥 잊혀지기에는 너무 소중한 정보인 것 같다. 그래서 게시판을 시작한다. 반년에 하나, 즉 매년 두개의 글을 통해 내가 그 6개월의 기간 동안 무슨 일을 ..

대회후기: Codeforces Round #678 (Div. 2)

잠시 과제와 시험이 없는 틈을 노려 무려 두달 반만에 코드포스 대회를 접수했다. A: Reorder 문제를 해석하는 순간 사실상 끝난다. Reordering은 낚시. 2분에 AC B: Prime Square 여러 가지 풀이가 있는 듯 하다. 나같은 경우, $1$을 $n - 1$개 배열한 후, 더해서 소수가 되는 숫자 하나를 더 추가해 하나의 행을 만들었다. 이 행을 한칸씩 밀어 배치해주면 square가 완성된다. 13분에 AC C: Binary Search 풀고 나서 보면 꽤 쉬운 문제인데, 이런 생각을 해본 적이 없어서 뇌정지가 잠깐 왔었다. 직접 이진탐색을 해보며, 찾고자 하는 값보다 왼쪽과 오른쪽에서 확인하게 되는 원소의 수를 기록하면 된다. 왼쪽과 오른쪽에서 확인하는 원소의 수가 정해지면, 경우의..

대회후기: 2020 ACM-ICPC Seoul Regional 예선

대회를 너무 캐주얼하게 진행했더니 캐주얼하게 망해버렸다. 원래 같았으면 대충 윗공대에서 치렀을텐데, 두 대의 카메라를 동원해 Zoom에 접속해 컴퓨터 화면과 팀원들이 나오도록 설치해 둔 상태로 대회를 진행해야 한다는 번거로운 온라인 대회 규칙 때문에 서울대입구역의 토즈 스터디룸을 빌려 대회를 진행하게 되었다. 대회에서 시도한 문제 순서대로 정리하겠다. I: Project Teams 스코어보드를 참고해 제일 쉬운 문제인 I를 먼저 잡았다. 문제를 다 읽기도 전에 정렬 후 앞뒤로 짝지어주는 well-known 풀이가 떠올랐다. E: Cycle Game 그래프를 그려나갈 때, 사이클이 생기는 시점을 감지하면 된다. 읽자마자 UFDS를 떠올렸으나, 문제를 잘못 이해한 Nyso가 다른 방법으로 시도한 후 한번 실..

대회후기: 디지털 헬스 해커톤 2020 (DHH) - AI 트랙

발단 의대간 고교친구 S가 갑작스럽게 이 대회를 하자고 연락했다. 솔직히 연락을 처음 받은 순간에는 거절하고자 하는 마음이 더 컸다. 스누포 앙상블 등으로 한창 바쁘던 시기가 막 끝난 시점이었고, 조금은 휴식의 시간을 갖고 싶었었다. 인공지능이라고는 고교때 잠깐 끄적여본 기본적인 인공신경망이 전부였다. '의료' 해커톤인 점 또한 망설이게 만들었다. 과연 내가 이 대회에 유의미한 기여를 할 수 있을까..? 하는 의문이 컸다고 할 수 있겠다.. 하지만 내가 항상 그렇듯 일단 일을 벌리고 본다. 고민해보고 답장을 주겠다는 연락을 보낸 순간, 난 이미 할일 스택에 이 대회를 올려놓았을거다. 전개 나와 친구 S, 그리고 친구의 선배 P로 Team Softmax가 구성되었다. 올해 신설된 AI 트랙이라 그런지 대회..

Hackathons 2020.09.18

대회후기: SNUPC 2020 (Div. 2)

대학을 와서 치는 두번째 SNUPC다. 작년, 나의 레이팅 상승 추이를 보며, 2020년에는 SNUPC의 Division 1에 출전할 수 있으리라 생각했던 것이 기억난다. 안타깝게도 1년 사이에 큰 폭의 실력 상승은 없었고, Division 1에 출전할 용기 또한 없었다 ㅋㅋ 요즘 들어 CP에 조금 소홀해진 듯한 느낌이 드는데, 이런 와중에 치른 대화라 그런지 작년의 열심은 없었던 것 같다. 코로나의 여파로 인해 집에서 치뤄서 그런가..? 이제 시작한 2학기에는 작년처럼 조금 더 열심히 실력을 업그레이드할 수 있으면 좋겠다. 암튼 대회 스타트..! A: 수면 패턴 구현 문제다. 파이썬으로 퍼솔 달성!! B: 단어 개수 세기 역시 구현 문제다. 파이썬으로 퍼솔 달성!! C: 넴모넴모 2020 이진탐색 기본..

대회후기: Codeforces Round #663 (Div. 2)

자다 일어나자마자 Nyso의 연락을 받고 대회 레지스터. 초반 문제를 최대한 빨리 풀겠다는 마음으로 임했다. A: Suborrays 그냥 아무거나 출력하면 된다. 2분에 AC B: Fix You 젤 오른쪽 column과 젤 아래 row만 살피면 된다. 5분에 AC C: Cyclic Permutations Cycle이 생기는 조건을 먼저 찾아내고자 했다. 잘 생각해보니 permutation의 값들이 내려갔다가 올라가는 경우, 즉 $2, 1, 3$과 같은 배치인 경우 cycle이 생긴다. 이 두 조건이 동치인 것을 증명하기 전에 그냥 구현하고 제출해보기로 했다. 경우의 수를 세는 방법은 두가지가 있다. 직접 세주는 방법과 여집합을 이용한 방법이다. 여집합을 이용하는 경우, 값들이 올라가서 고점을 찍고 내려가..

대회후기: Codeforces Round #662 (Div. 2)

여섯번째 퍼플진입. A: Rainbow Dash, Fluttershy and Chess Coloring 홀짝성 따져서 잘 해보면 된다. 6분에 AC B: Applejack and Storages 각 길이의 plank가 몇개씩 있는지 잘 세주면서, 4개 이상짜리 집합과 2개 이상짜리 집합으로 나눠서 관리하면 된다. 20분에 AC C: Pinkie Pie Eats Patty-cakes 예제 입력과 출력을 보니, 제일 빈도가 높게 등장하는 숫자가 critical한 것 같았다. 빈도가 제일 높은 숫자를 최대한 떨어뜨려 배치한다면, 나머지 숫자들은 적당히 배치하여 동일 숫자간의 최소 거리를 유지할 수 있을 것 같다는 강한 직관을 느꼈다. 강한 직관은 보통 맞다. 문제가 되는 부분은, 빈도가 제일 높은 숫자가 여러..