이미 킹갓 Serendipity 형님이 준수한 필력으로 맛깔나게 잘 써주셔서, 자세한 대회후기는 해당 블로그 링크를 남겨놓습니다 :)
저는 그보다는 우리팀 PS:Endgame과 올해의 PS에 대한 저의 생각들을 좀 적어보고자 합니다.
이번 SUAPC 대회에 참여한 PS:Endgame 팀(JyJin, Serendipity__, plast)은 올해 처음으로 함께 팀 연습을 하게 되었습니다. 작년 연세대 팀은 팀원을 바꿔가며 팀 연습을 진행했기에 대부분의 사람들과 함께 팀을 해봤지만, 흥미롭게도 JyJin, Serendipity__와는 한 번도 같이 해본 적이 없었습니다. 팀별 밸런스를 맞추는 과정에서 우연히 이렇게 된 것 같습니다. 결국 올해 4월 말에야 처음으로 팀 연습을 진행하게 되었습니다.
제가 팀연습을 해보면서 느낀건 두명 모두 정말 좋은 팀원이라는 것입니다. JyJin은 팀대회에서 정말 특장점이 있는 친구입니다. 어느 상황에도 제일 침착하고 저점이 굉장히 높아서 항상 안정적인 퍼포먼스를 보여줍니다. 대회 현장에서 보면 이렇게 믿음직할수가 없습니다. 또한 문제풀이의 소통이 매우 잘돼서 개떡같이 아이디어를 제시해도 찰떡같이 알아듣고, 바로 아이디어의 정당성을 판단합니다. 동시에 더 좋은 아이디어가 되도록 굉장히 빠르게 이야기를 발전시킵니다. 어떻게보면 Serendipity__ 형님이 써주신 비유가 아주 정확한데, 저와 JyJin은 합이 많이 좋은것 같습니다. 둘이 만나서 문제를 풀면 좀 유별나게 문제가 잘 풀린다고 느껴집니다.
Serendipity__ 형님 또한 매우 뛰어난 능력을 보여줍니다. 그의 문제 풀이 스타일은 저와는 다소 차이가 있습니다. 제가 문제를 보고 단계별로 관찰하고 추론해가며 푼다면, Serendipity__ 형님은 자신의 경험과 지식을 바탕으로 유사한 문제들을 빠르게 연관 지어 접근합니다. 이러한 능력 덕분에 제가 어려워하는 문제에 대해 조언을 구하면, 오히려 즉각적인 해결책을 제시하는 경우가 많습니다. 또한, 제가 문제에 대한 접근 방식을 설명하면, 그것을 바탕으로 더 발전된 아이디어를 도출해내어 난이도 높은 문제들을 직접 해결하는 모습을 자주 보여줍니다.
Serendipity__ 형님은 우리 팀이 교집합이 많다고 설명했지만, 세 명의 팀원이 비슷한 능력을 가졌다기보다는, 각자 뚜렷한 특성과 강점을 가지고 있다고 생각합니다. 한 사람이 어려워하는 문제를 다른 사람이 잘 풀어내고, 원활한 소통을 통해 한 사람이 막힌 부분을 다른 사람이 이어받아 더 발전시키는 식의 상호보완적인 팀워크가 잘 이루어집니다. 이러한 점에서 우리 팀은 팀 대회에서의 강점이 특히 잘 드러나는 조합이라고 생각합니다.
올해 우리 팀은 매우 기대되는 강팀으로 느껴집니다. 제가 스스로 저희팀한테 너무 높은 기대를 갖는 것이 아닌가 하는 걱정도 있지만, 레드 레이팅을 가진 멤버가 두 명이나 있는 팀이니 이 정도의 기대는 자연스러운 것 같습니다. ㅋㅋ 여튼 팀소개는 여기까지 하고 마치겠습니다.
저는 현재 3년차 직장인입니다. 학교를 다니면서 직장도 다니고 PS도 병행해왔지만, 회사 생활을 하면서 다른 활동을 병행하기가 얼마나 어려운지 실감하고 있습니다. PS는 즐겁지만, 이를 평생 취미로 두고 싶지는 않습니다. 제가 PS를 시작하고 나서 제가 이루고자 했던 최종 목표는 코포 레드와 앳코더 오렌지를 달성하는 것이었습니다. 이 목표를 달성한 후에는 회사에서 더 도움이 되는 역량을 키우고 싶다는 생각을 해왔습니다.
이번에 PS에서 제가 설정한 목표를 달성했기에, 2024년 ICPC를 끝으로 PS 공부에 마침표를 찍으려고 합니다. 조금 아쉽기도 하지만, 원래는 작년에 PS를 마무리하려 했던 것이 어쩌다 보니 같은 생각을 가진 사람들과 함께 1년을 더하게 되었습니다.
올해가 정말 마지막인 만큼, 박수받는 퍼포먼스로 마무리하고 싶습니다. 말 그대로 박수칠 때 떠나는 멋진 마무리를 꿈꿔봅니다.
이번 UCPC는 ICPC팀과는 다르다! 약간의 사정이 있어 UCPC 팀은 plast, sk091204, changhw와 함께 했다. 경욱이(sk091204)는 군대 가기 전 사실상 마지막 팀대회다. 군대 잘갔다오렴... 현우형(changhw)은 다른 팀이 있었는데 어쩌다가 잡혀와서 같이 하게 됐다.
대회를 준비하면서 가장 힘들었던 것은.. 역시 팀명을 정하는 것이었다.
분명히 "Akiyama Mizuki Fan Club!" 보다 나은 팀명이 있다면 24시간 내에 알려달라고 했는데
다들 24시간동안 조용히 있었던걸 보니
너무 마음에드는 팀명이였나보다
사실 하나 있었는데 노잼이라 넘어갔다
결국에는 1주일동안 내가 팀명 팀명 거리면서 울부짖었는데
팀이름 그대로 이름이 됐다
돌이켜보면 너무 감이 없었다
팀원들 몰래 Akiyama lovelovelove 이딴걸로 신청해놓을걸 그랬나보다
UCPC 예선
헉
생각했던 것보다 지나치게 폼이 좋았어서 정말 놀랐다
우선 내가 말이 안됐다
A -> D -> C -> J -> H 라는 초스피드 풀코스를 탔는데 무려 B4G2P4 P5G2까지 푸는데 1시간이 걸렸다. 여기까지 풀고 나니 팀원들이 풀고 있는 문제를 빼면 B, F밖에 안남았다. 띵가띵가 놀다가 F를 잡았고 P1 을 풀어 2시간 쯔음에 10솔을 했다.
마지막으로 B가 남았는데, 사실 내가 F 슛을 하는 동안 나머지 둘이 4를 construct하다가 gg쳤다
그걸 보고 내가 훈수를 뒀지만 잘못된 훈수였고 우리는 못푸는 문제겠구나 하고 그냥 때려치고 띵가띵가 놀았다
끝나고보니 올솔이 5팀이나 됐다. 그래서 6등이 됐다. 생각보다는 쉬운 문제라던데 흠 잘 모르겠다.
지금 와서 복기를 하려 하니, 이것 외에는 잘 기억이 안난다. 아 우리팀의 G번 코드가 매우 흥미로웠다는 것도 기억난다.
보면서 한참 웃었다
무슨 문제인지는 모르겠지만 엄청 골때리는 문제를 잘 풀어준 것 같아서 고마웠다
대신 이렇게 코드짜고 틀렸다면 딱밤 세대 때렸을거다
UCPC 본선
본선은 살짝 아쉽게 됐다
본인은 D -> A -> M 순으로 풀었다. 개인적으로는 M이 많이 어려웠는데 생각보다 많은 팀들이 풀어서 놀라웠다.
그동안 팀원은 E -> C, L을 차례차례 풀어주며 2시간도 안돼서 6솔을 했다.
그다음으로 해볼만한 문제는 F, H, J였다. J는 트리 문제길래 내가 빠르게 받아서 풀이를 짜왔다.
일단 대놓고 HLD풀이가 보여서 풀이를 정리해봤다. 근데 딱봐도 복잡해서 다른 풀이를 한참 고민해봤다.
하지만 다른 풀이를 못떠올렸다.
나중에 들어보니 sparse table을 이용하는 획기적인 풀이부터, 심지어는 지름의 특징을 이용한 풀이도 있던데 다 엄청 감탄하면서 열심히 복기했다.
어쨌거나 그당시 나는 HLD풀이밖에 안보여서 열심히 열심히 짰다..
그리고 온갖 손테케 만든건 몽땅 맞는 제출하면 30초 돌아가다가 틀렸습니다 띡 뜨는 코드를 짜고 폭사했다
그사이 팀원은 각각 F, H를 보고 풀이가 나왔다. H 풀게 자리를 비켜줬고, 그동안 F는 풀이는 확실하지만 구현방법이 정리가 안돼서 구현을 어떻게 할지에 대해 대화했다
어떻게든 꾸역꾸역 H를 푼 와중에 내 J는 걍.. 아무리 봐도 맞다. 뭘 넣어도 맞다.
왜 틀림???
마지막까지 투덜거리다가 끝났다
그냥 F를 들어갔어야 했나 싶지만 J를 확정적으로 맞은 뒤에 들어가는게 맞는 판단이기는 했던 것 같다. 내가 똥을 싸서 문제지..
많은 분들도 비슷한 생각을 하실 텐데, 저 역시 마찬가지예요. 저 자신이 더 잘할 수 있는 사람이 되고 싶고, 좋은 사람이 되고 싶어요. 그러다 보니 자연스럽게 어떻게 하면 되는지, 자기계발 같은 주제에 관심이 커지더라고요.
사실 누구나 이와 비슷한 고민을 안고 살아가죠. 저도 예외는 아니에요. 제 안에 숨어있는 잠재력을 마음껏 발휘하고 싶은 마음에 여러 방법을 모색하게 돼요. 책을 읽기도 하고, 강의를 듣기도 하면서요. 결코 쉽지 않은 과정이겠지만, 포기하지 않고 꾸준히 노력하는 게 무엇보다 중요하다고 생각해요.
자기계발에 관해서는 저보다 잘 쓰는 사람이 많기 때문에.. 제가 좋게 읽었던 글 몇개만 소개하고 다시 개인 회고로 넘어가겠습니다.
제가 처음 이 책을 읽었던 것은 2018년이었고, 그때는 저도 해당 블로그의 글쓴이와 비슷한 생각을 했던 것 같습니다.
협업 과정에서는 이 책에서 다루는 가치관 중 일부가 부정적인 영향을 미칠 수 있습니다. 또한, 개인의 성향에 따라 호불호가 갈릴 수 있습니다.
그럼에도 불구하고, 저에게는 여전히 최고의 책 중 하나로 남아 있습니다. 이 책이 제공하는 통찰과 가치는 여전히 유효하며, 개인의 성장과 발전에 큰 도움이 된다고 생각합니다.
다시 개인 회고로 넘어오겠습니다.
작년을 돌아보면, 큰 성장을 이루지는 못했지만 나름대로의 성취가 있었습니다. PS(Problem Solving)에 열심히 매진하여 수상을 여러 번 했고(SCPC 4등상, 모비스 14등, ICPC Asia 23등), 학교 수업에도 충실히 임해 아키텍처 등 주요 과목에서 A+을 받았습니다.
무엇보다 작년은 인격적인 측면에서 많이 성장한 한 해였습니다. 아래에서는 이에 대해 조금 더 자세히 이야기해 보고자 합니다. 내용이 다소 사적일 수 있겠지만, 그동안의 발자취를 남기는 일은 저 스스로에게도 큰 동기부여가 되기에 오랜만에 글을 적어봅니다.
2023년에는 두 가지 큰 목표를 세웠습니다. 첫째는 사회성을 기르는 것이었고, 둘째는 생산적인 취미를 찾는 것이었습니다.
돌이켜보면 두 가지 목표 모두 성공적으로 달성했다고 생각합니다.
하나씩 이야기보따리를 풀어보겠습니다.
첫번째 능력인 사회성입니다.
저는 언어능력에 문제가 많았습니다.
'읽기', '말하기', '듣기' 순으로 문제가 있었고요. 어느정도로 심각했는지 쉽게 설명하면 수능때 국어가 5등급이였습니다. 열심히 풀었어요. 그런데도 5등급이였습니다.
제가 언어 능력 중에서 가장 먼저 해결한 부분은 '듣기'였습니다. 기억에 남는 에피소드를 하나 들려드리겠습니다. 고등학교 1학년 때, 담임선생님과 진로에 관해 30분 정도 이야기를 나눈 적이 있었어요. 그런데 대화를 마치고 나오는 순간, 방금 전까지 나눈 내용이 하나도 기억나지 않는 거예요. 열심히 집중해서 들었다고 생각했는데 말이죠. 그때 '어, 근데 아까 뭘 얘기했더라? 전혀 기억이 안 나네'라는 생각이 스쳐 지나갔어요. 지금도 그 순간이 생생하게 남아있고, 한편으로는 꽤나 충격적인 경험이기도 했습니다.
2020년에는 유튜브를 많이 봤던 것 같아요. 특히 말이 많이 나오는 영상들을 집중적으로 시청했죠. 어느 정도는 의도적으로 제 언어 능력을 향상시키기 위해 노력한 것 같습니다. 다행히도 '듣기' 영역은 상대적으로 큰 문제가 없었기에, 비교적 짧은 시간 내에 호전되었던 걸로 기억해요.
이런 문제의 가장 큰 원인은 듣는 경험이 부족하다 보니, 말을 들으면서 전달하고자 하는 바를 구체적으로 이해하고 파악하는 능력이 떨어졌기 때문인 것 같아요. 그래서 많이 듣다 보니 자연스럽게 해결되었던 거죠.
그 다음으로 해결된 문제는 '읽기'였습니다. 읽기 능력은 특히나 심각한 상태였어요. 글을 읽는 데 집중이 되지 않았고, 잠깐만 읽어도 금세 다른 생각에 빠져들어 책 한 페이지를 읽는 데에만 한 시간이 넘게 걸렸죠. 고등학생 때 책을 읽어오는 과제가 꽤 있었는데, 한 번도 성공한 적이 없었어요.
이 문제는 2021년에 가장 크게 해결하고자 노력했던 과제 중 하나였습니다. 문제 풀이 형식으로만 공부해 온 저에게 글에 집중하지 못한다는 건 상당히 심각한 문제로 다가왔거든요. 가장 중요하게 해결해야 할 부분은 글 자체에 흥미와 집중력이 부족하다는 점이라고 생각했어요.
그래서 두 가지에 주력하기로 했습니다. 첫째는 글 자체에 흥미를 느껴야 한다는 것, 둘째는 글 읽기에 익숙해져야 한다는 것이었어요. 이를 위해서는 글을 재미있게, 그리고 꾸준히 읽어야 한다는 결론에 도달했죠. 저에게 글 읽기가 즐거웠던 경험은 단 한 번뿐이었는데, 중학생 때 도서관에서 '달빛 조각사'라는 소설을 읽고 있을 때였어요.
나중에 알게 된 사실이지만, 이러한 부류의 소설을 요즘은 웹소설이라고 하더군요. 대화 위주로 구성되어 읽기 쉽고, 흥미로운 스토리 덕분에 몰입도 잘 되는 글이었어요. 제가 보기에 이는 제 난독증을 치료하는 데 아주 좋은 선택지처럼 느껴졌습니다.
그렇게 웹소설을 읽기 시작했어요. 웹소설도 의식적으로 읽었죠. 읽기 싫은 날에도, 매일 최소 10편은 꼭 읽어보자는 목표를 세웠습니다. 1년 정도 이런 식으로 읽었더니 총 7000편 정도를 소화했습니다. 편당 평균 5000자 정도니까, 대략 3500만 자의 분량을 읽은 셈이에요.
웹소설을 활용한 방법은 꽤 효과적이었습니다. 처음 3개월 정도는 큰 변화를 느끼지 못했고, 글 읽기에 대한 거부감도 크게 줄어들지 않았어요. 하지만 읽으면 읽을수록 글 읽는 게 익숙해지고 속도도 붙더라고요. 글을 빨리 읽을 수 있게 되니 자연스레 스토리도 눈에 잘 들어오고, 글 읽는 재미도 붙었어요. 이런 선순환이 반복되면서 1년쯤 지났을 때는 읽기 능력이 크게 향상되었죠. 기억에 남는 에피소드로, 현재 제가 다니는 회사에 수능 전체 5개? 4개? 틀린 분이 계신데 그분과 수능 국어 내기를 해서 이겼습니다. (2패 1승) ㅋㅋ
쉽게 해결하지 못했던 문제는 '말하기'였습니다. 사실 듣기와 읽기는 개인의 노력으로 상당 부분 극복할 수 있어요. 많이 듣고, 많이 읽으면 되니까요. 하지만 말하기는 조금 다른 문제였습니다. 주변 사람들에게 자주 말을 걸어보려 해도, 재미없는 사람이 계속 말을 걸면 오히려 피곤해할 뿐이었거든요.
혼자 중얼거리는 것은 애초에 거부감이 컸고, 다른 사람들 앞에서 말하는 것 역시 두려움이 컸습니다. 그러다 보니 자연스레 가장 오래도록 방치된 문제가 되어버렸어요. 예전부터 이 문제의 심각성은 인식하고 있었지만, 쉽사리 해결책을 찾지는 못했습니다.
그래도 결국 말하기도 익숙해지는 것이 가장 중요한 포인트라고 생각합니다. 2022년에는 회사에서 수많은 토론에 참여하고, 동료들과 대화할 기회가 많았기에 조금씩 나아지고 있었어요. 지금도 회사 식구들에게 정말 고마운 마음을 갖고 있습니다. 제가 서툴렀음에도 좋게 봐주신 분들께 감사드립니다.
2023년의 주요 목표 중에서도 말하기 능력이 가장 큰 비중을 차지했다고 봅니다. 작년 한 해 동안 정말 다양한 시도를 했던 것 같아요. 대표적으로 학교 친구들과 스터디를 진행하면서 제가 주도적으로 강의를 해보려고 노력했고, 알고리즘 캠프도 진행해서 직접 많은 사람들 앞에서 강의를 진행했습니다. 동아리 활동에서도 적극적으로 대화에 참여했죠. 친목 활동에도 특별히 많이 참여하면서 말할 기회를 늘렸습니다. 운 좋게도 많은 분들이 저를 좋게 봐주셨고, 1년 정도 이런 식으로 지내니 말하는 능력이 크게 향상되었어요. 이제는 부족하다는 생각이 들지 않을 만큼 성장했습니다.
이런 문제들이 해결되니 사교성 문제도 자연스레 사라졌어요. 예전에는 스스로가 재미없는 사람이라고 여겼고, 그 점을 의식하면 할수록 오히려 더 재미없어지는 악순환이 있었거든요. 하지만 그런 사이클이 끊기면서 문제들도 금세 해결되었던 것 같아요.
결론적으로 말하자면, 이 부분은 상당히 성공적으로 해결된 것 같아요! 물론 인간관계가 단순히 말로만 이루어지는 것은 아니고, 그렇게 간단한 문제도 아니라는 걸 잘 알고 있습니다. 하지만 그럼에도 불구하고 이전보다는 훨씬 더 많은 곳에서 좋은 관계를 유지하고 있다고 생각해요. 그리고 저를 좋게 봐주시는 분들께 항상 감사한 마음을 갖고 있습니다.
제가 이렇게 변할 수 있었던 건 주변 분들의 도움과 격려 덕분이에요. 앞으로도 이런 소중한 인연들을 잘 이어나가고 싶고, 더 나은 사람이 되기 위해 계속해서 노력하고 싶습니다.
두 번째 이야기는 취미에 대한 이야기입니다.
저는 원체 심각한 게임 중독자였기 때문에 제 정신건강을 위한 취미를 찾고 있었어요.
2023년에는 꽤나 많은 것들을 도전해 왔다고 생각합니다.
정말 다양한 것들에 도전해 봤어요. ㅋㅋ
많이 들었던 조언은, 머리를 많이 쓰는 사람은 몸을 쓰는걸 취미로 가지는 게 좋다는 거였어요. 하지만 아쉽게도 저는 몸이 좀 안 좋은 편이라서 그런 취미들이 잘 맞지 않더라고요. 여러 가지를 시도해 보면서 깨달은 점은, 제가 취미로 즐길 만한 가장 좋은 분야가 결국에는 공부라는 거였습니다. ㅎㅎ
이런저런 경험을 해본 결과, 내면의 성장을 목표로 삶을 살아가는 것이 가장 행복할 수 있는 방향이라는 게 저의 결론이였어요. 그리고 그런 과정에서 저에게 가장 만족감을 주는 취미는 다름 아닌 공부였죠.
물론 공부가 모두에게 어울리는 취미는 아닐 거예요. 하지만 작년 한해 저 자신을 돌아보고 깊이 고민한 끝에 내린 결론이기에, 앞으로도 이 길을 즐겁게 걸어가 보려고 합니다.
요즘은 이론 ML 분야를 공부하고 있어요. 운이 좋게도 주변에 이론ML을 공부하는 좋은 지인들이 있어서 같이 하고 있습니다.
2024년에는 조금 더 열정적으로 공부를 하고 역량을 키우는 시기가 됐으면 합니다. 구체적으로는 개발능력, 영어, ML, 알고리즘이 되겠습니다.
저희는 연세대학교 Cookie(쿠키) 팀으로 Asia Pacific Championship 참여했습니다! (plast, dreami63, sk091204) 아시아 23등으로 마무리했습니다.
저희팀은 올해로 쫑내기로 했던 팀이구요 (재혁이형(drami63)은 나이 문제로, 경욱이(sk091204)는 군대 문제로 저희 팀은 올해 해산입니다! 물론 경욱이는 군대 다녀오면 코딩의 신이 되도록 제가 책임지고 만들 것 입니다 우하하)
간단히 팀에 대해 소개를 하자면, 23년 1월 SUAPC때 왠지 레이팅 높아보이는 사람들 데리고 참여했고 세 명 모두 대회장에서 처음 만나게 되었습니다. 대회때 푸는 실력을 보는데, 너무너무 잘하셔서.. "이분들 진짜 잘하시는데?" 하고 즉석으로 ICPC팀을 만들게 되었습니다.
세명 모두 문제 풀이 경험이 적은 편에 속합니다.이 때에만 해도 백준티어 P2(저), P3(재혁이형), D5(경욱이)이였나? 그랬습니다. 하지만 문제풀이 경험에 비해 코포 레이팅도 높고, 충분히 더 잘할 수 있는 성장 가능성이 보여 1년을 죽도록 하기로 했습니다.
저희팀은 같은 연세대학교 SCC팀과 마찬가지로 많은 연습을 진행했고, 세보지는 않았지만 팀연습 횟수는 50번? 정도는 될 것 같습니다.
팀전략은 다음과 같았습니다.
코드는 80% 제가 잡았습니다. 종종 제가 구현하기 어렵거나, 문제설명이 충분하지 못한 경우에만 다른 사람이 들어갔습니다.
문제 풀이는 세명이 잘하는 영역이 각기 달랐기에 메인 영역을 나누었습니다.
저는 트리, DP, 게임이론, 자료구조,
재혁이형은 그래프, 유랑, 게임이론,
경욱이는 기하 메인으로 맡았습니다.
메인 영역들은 다이아 하위 문제도 안정적으로 잡을 수 있을만큼 공부하기로 했고 어느정도 원하는 퍼포먼스가 나왔다고 생각합니다. 메인 영역 이외의 영역은 다들 P3 까지는 안정적으로 잡을 수 있었던 것 같습니다.
그외에는 처음 열린 아시아 리저널이여서 한국팀들과 친해질 기회가 많았는데, 특히 서울대 NewTrend팀, 포스텍 Allsolvedin1557팀이랑 우연히 뷔페 옆자리, 크루즈 옆자리에 앉게 돼서 대화를 많이 나눴던 것 같고 새롭게 느끼는게 많았습니다. 두 팀 다 WF 파이팅입니다! 🥳
그외에는 1년간 죽도록 같이 연습했던 연세대학교의 SCC팀도 지금 상황에 따라 WF를 갈 수도 있는 상황에 놓여있는데 반드시 갔으면 좋겠습니다.
한국 리저널에서 3등 제한이였다면 WF는 꿈도 못 꿨을 텐데, Asia Pacific Championship 덕분에 운이 좋았다면 WF를 바라봤을 수 있었던것 같고, 해외까지 와보면서 맛있는 밥도 먹고 많은 경험을 할수 있게 되어 너무 기뻤습니다. 내년에도 할까요? ㅋㅋ 지금은 잘 모르겠습니다.
WF를 너무 나가보고 싶은 생각도 반, IQ 200을 찍어보고 싶다는 생각(=탈 알고)도 반쯤 있습니다. ㅋㅋ 1년간 모두 수고하셨습니다!
처음에는 살짝 어려울줄 알고 쫄았는데 홀짝성만 봐도 끝나는 문제였습니다. 바로 짜서 맞췄습니다.
(0:10) 1번+100점
2번 문제를 보았습니다.
열심히 생각을 정리하니 로봇은 항상 가장 근거리에서 만나야지만 최선임을 이용해서 DP식이 세워지고, 이 직선의 형태가 CHT로 변형될 수 있다는것이 어렵지 않게 떠올랐습니다. 개인적인 감상으로는 문제 발상 자체는 난이도가 낮았어서 많이들 생각했지 않았을까 싶습니다.
그걸 바탕으로 우선 O(N^2)인데 CHT로 바로 변형 가능하도록 코드를 짜는데.. 어라 생각보다 쉽지 않습니다. 구현이 너무 빡셈을 느끼고 겨우겨우 짰지만 오답이 나왔습니다.
(1:20) 2번 WA
이때 살짝 멘붕이 왔습니다. 왜냐하면 코드를 개떡같이 짜놔서 디버깅 해야 할 것이 산더미인데, 제가 사전점검도 안해와서 디버깅조차 제대로 할 수 있는 상황이 아니였기 때문입니다. 그래도 제 구현능력을 어느정도 믿어보고 이것저것 훑어봤지만, 아무리 봐도 틀린게 없었습니다.
멘탈이 펑 터진채로 아니 나만 못푸는건가? 싶어서 돌아왔더니 2번 정답자수는 0명이였고 왠 4번이 많이 풀려있었습니다.
휴~ 그럼 그렇지 ㅎ 하고 4번으로 갔습니다.
그런데 4번은 더더욱 멘탈이 터졌습니다. 뭘 해야 할지 머리가 띵 해졌습니다.
가장 큰 숫자를 a라고 할 때 양쪽으로 나뉘는 특징과, 가장 작은 숫자를 a라고 할때 양쪽의 특징을 살펴보며 접근했는데, 제 문제풀이 경험으로는 이럴 때 큰 숫자를 기준으로 하는 경우를 많이 봤어서 큰 숫자일때 특징을 위주로 살펴봤습니다. 열심히 식을 정리했더니 O(N^4)짜리 DP식이 나왔습니다. 오... 심지어 공간복잡도도 O(N^4)이라 그냥 답이 없었습니다.
이게 아닌거 같은데 싶으면서도 제 문제풀이 경험으로는 이 풀이밖에 없다는걸 본능적으로 알고있었어서 더 나아가지도 못하고 빼지도 못하는 상황에서 1시간이 더 흘러갔습니다.
아 제대로 말렸구나 싶어서 조금 있다가 다시 보는편이 좋을 것 같아 다시 2-2로 넘어왔습니다.
다행히도 2-2의 오류가 여러개 보이기 시작했습니다. 제가 바보같은 전처리를 몇개 해놓은 바람에 반례 데이터를 찾을 수 있었습니다.
겨우 2:40쯔음에 눈에 보이는 오류들을 고치고 다시 제출했습니다. 하지만 오답이 나왔습니다.
(2:40) 2번WA
이젠 진짜 멘붕이 왔습니다. 3시간째가 됐는데 제 점수는 100점이고 그냥 아무생각도 나지 않았습니다..
정말 이대로는 망한다 하면서 2-2의 반례데이터를 무지성으로 만들어봤습니다. 그러다가 운좋게 하나가 얻어 걸렸습니다. 잠깐 고민해 보니, 로봇을 정지해 두고 나중에 바꿔치기 하는것이 이득인 경우가 추가로 있었습니다. 이에 대한 처리를 해 주었고, 이번에는 141점이 나왔습니다.
(3:00) 2번 +141점
그래도 141점을 맞으니 희망이 보였습니다. 이 상태에서 4번만 맞아도 5등상은 받겠다는 생각이 들었습니다. 그래서 4번 문제를 아얘 처음부터 차분히 접근을 했습니다.
그런데 왠걸, 처음에 생각했던 큰수 작은수 중에서 작은수를 기준으로 점화식을 고민해보니 엄청 쉽게 식이 나왔습니다. 울부짖으며 코드를 작성했고 바로 만점이 나왔습니다.
(3:20) 4번+200점
이 문제는 후에도 복기를 정말 많이 했습니다. 제가 왜 말렸는지도 좀 고민을 해 보았고.. 다시는 말리지 않도록 점검을 많이 했습니다.
아무튼 시간이 30분이나 주어졌습니다. 저는 이제 두 가지 선택지가 있었습니다.
이미 풀이를 아는 2-3을 긁기 vs 3번을 파기
둘다 유효한 선택지였다고 판단했습니다. 왜냐하면 저는 2-3에도 자신이 있었고 3번은 트리문제인데 저는 트리문제에 한해 슈퍼 무적이기 때문에 30분따리여도 다 긁어버릴 수 있을거라는 자신이 있었습니다.
먼저 2-3을 해보자는 결론을 내렸고, 잠깐 고민해보니 생각보다 만만치 않음을 느꼈습니다. 왜냐하면 로봇이 멈추는 쿼리가 추가되면서 컨벡스헐이 기울기가 감소하는 방향으로만 주어지지 않았기 때문입니다. 잠깐 이것저것 끄적여 봤는데 유의미한 결과를 얻지 못했고 아쉽게도 15분정도를 버리게 되었습니다.
2022년 지난 1년간 코드트리에서 일하면서 1500개 정도의 코딩문제를 검수했다. 가끔은 아침에 회사에 와서 새벽까지 검수하다 간 날도 있었을 정도로 영혼을 갈아넣었다. 남는 시간에는 틈틈히 react + django 개발공부를 했다. 회사와 이해관계가 맞아 개발공부에 정말 많은 도움을 받았다.
개발공부가 처음이였어서 처음에는 어려움을 많이 겪었다. 처음에는 front, back 무엇 하나 이해가 되지 않고 스트레스를 받았었는데, 회사에서 많은 도움을 받은 덕분에 안정궤도까지는 올라올 수 있었다. 그렇게 1년정도 공부한 지금 시점에 front로는 react의 hook에대한 이해를 바탕으로 주어진 컴퍼넌트를 하루 안에 개발을 마칠 수 있는 수준이 되었고, back은 http형태의 api를 주어진 용도에 맞게 만들 수 있게 되었다. 그외에도 sql기반 데이터베이스를 얕게나마 이해하고 활용할 수 있게 되었다. websocket 관련 프로젝트도 여러개 진행하면서 consumer의 작동원리를 이해하고 코드를 짤 수 있게 되었다.
스타트업은 회사의 시니어들의 퀄리티에 따라 정말 회사 분위기가 다르다고 들었다. 그런 의미에서 코드트리는 정말 좋은 회사였다. 좋은 분위기 속에서 내가 성장할 수 있는 많은 기회가 있었기 때문이다.
개발공부가 안정궤도에 오른 후부터는 바텀업 형식으로 능동적으로 회사를 고칠 수 있는 기회를 많이 얻게 됐다.
예를 들어, 이전에는 다른 컨텐츠팀에서 코드 질문이 있을 때마다 코드를 하나하나 읽어가며 반례를 찾아주었는데, 많은 시간과 노력을 쏟고 있다고 생각했다. 이런 부분을 자동화할수 있을 거라는 생각에서 모든 문제에 대해 자동으로 테스트케이스를 랜덤 생성해, 반례를 찾아주는 기능이 있으면 좋겠다고 생각했다. 기획을 해서 회사 측에 말하자 의미있는 일이라고 생각해 주셔서 개발에 대한 허락을 받았고 해당하는 기능을 스스로 개발했다.
기획 측면에서도 회사에 여러 의견을 낼 기회가 주어졌다. 유저들의 니즈에 대해 조금 더 고민해보고, 유저들이 정말로 원하는게 무엇인지 서로의 생각을 어느정도 일치시킬 필요가 있다고 생각해서 발표를 준비하고 방법론적으로 여러 의견을 냈다. 회사 측에서도 좋은 의견이라고 받아들이고 유저들의 니즈, 코딩 테스트를 하면서 유저가 갖게되는 여러 문제들을 재정의했다.
회사에서 상품의 가격결정에도 의견을 냈다. 사람들은 복잡한 것을 싫어하며, 인터넷 강의가 1년 플랜을 내놓는 이유와 1년 정책의 효용성에 관해 의견을 남겼다. 지금의 코드트리 가격제도에 영향을 주었다.
이런 식으로 회사를 위해 일하는 여러 바텀업 방식들이 전부 자유롭게 승인될 수 있는 정말 좋은 분위기가 갖춰져 있었다. 과분할 정도로 좋은 사람들과 분위기 속에서 일할 수 있게 되어 정말 영광이다. (물론 앞으로도 계속 일하게 될 것 같다!)
23년부터는 학교를 가기 때문에, 회사업무도 엄청 좋은 경험이었지만 학기 도중에는 회사에서 일하는 비중이 줄어들 것 같다. 그 대신 학교(는 첫 대면수업이다!) 에 가서 다른 경험들을 하게 될 것 같다.
올해는 친화력 기르기, ai연구 및 최신 동향 접하기, icpc 월파, 코드포스 레드 등등이 핵심 목표가 될 것 같다! 올해도 열심히 해봐야겠다.