[GDSC X Elice] Programming Contest
2022.11.06 / 13:00 ~ 17:00
시작은 무난하게 종료 후 사진 한 컷으로 :)
오늘은 성수낙낙에 방문해서 GDSC KR의 첫 연합 행사인
GDSC X Elice Programming Contest에 참가했다.
이벤트는 크게 본대회 진행, 굿즈받기, Elice 기업 소개, 문제 해설, Networking Session으로 구성돼있다.
무엇보다도 문제를 풀어서 등수를 정하는 것이 아니라 즐기는 분위기여서 부담없이 참가하기 좋았다.
그렇다고 문제가 쉽지는 않더라고..
본대회는 2시간 30분동안 총 여섯 문제가 출제됐다.
문제는 여덟 가지 언어로 해결할 수 있고, 나는 파이썬밖에 못하니까 파이썬으로 응시했다.
(C / C++ / Python / Java / Swift / JS / Rust / Kotlin 중 하나)
리트코드를 풀었던 경험이 있어서 문제 풀이 제출 방식은 유사할 것으로 생각했지만 크게 두 가지 차이점이 있었다.
첫 번째는 필요한 라이브러리를 모조리 import 해야한다는 것으로, 리트코드는 그냥 갖다쓰면 돼서 헷갈렸다.
그냥 collections.deque() 하면 짠! 하고 생기는데 말이야 :(
두 번째는 input type을 제대로 확인하지 않아서(...) 디버깅 과정에서 시간을 엄청 뺏겼다.
당연히 숫자는 "정수"라고 생각했으나 한참 뒤에 데이터 타입 확인해보니 str이어서 loop를 돌면서 싹 다 고쳐주었다.
어쩐지 nested loop에서 zero index도 안 돌아가더라..
리트코드는 input type도 모두 명시해줘서 편하게 풀었지만, 오늘 컨테스트에서 이것 저것 많은 것을 배웠다.
출제 문제와 해설을 올려주신다고 들었는데, 이 글은 집에 오자마자 작성된 글이므로 대충 내 풀이법을 작성했다.
1번 문제는 'naknak'이라는 문자열이 들어가면 'O'를, 아니면 'X'를 출력하는 문제였다.
빠르게 [n, a, k] 배열 만들어서 세 개의 문자열만 파싱하고,
string_parse.count('nak') == 2인 것만 'O', 나머지는 'X'를 출력하면 끝.
2번 문제는 참가자에게 상금을 주는데, 이때 상금을 최소한 사용하도록 참가자의 순서를 출력하는 문제였다.
참가자에게 주는 상금은 (본인이 이긴 상대) + (본인보다 앞에 서 있는 사람 중에 본인이 이긴 상대)이므로
각 참가자끼리 누가누가 이기나 O(n^2)으로 비교하여 딕셔너리로 넣어주고, 마지막에 리스트로 바꿔서
win_list.sort(key=lambda x: -x[1])로 내림차순 정렬하여 참가자를 출력하면 끝.
3번 문제는 지문이 기억이 나지 않고 메커니즘만 기억난다 :P
특정 엣지 기준으로 양 쪽의 노드의 수의 곱이 가장 큰 경우를 구하면 된다.
따라서 위상정렬로 leaf node부터 차례대로 본인 + descendant node로 끝까지 다 채운다.
이후 max((max_node_value - tmp) * tmp for tmp in max_node_adj)로 최대값을 구해주면 끝.
4, 6번 문제는 문제 구경도 못 했습니다 히히
5번은 뭔가 union-find로 사이클 생기는 경우끼리 잘 카운팅하면 스왑 횟수를 구할 수 있을 듯 한데..
사실 간략하게 써서 별거 없는 것 처럼 보이지만 시험 당시엔 매우 어렵게 느껴져서 시간이 부족했어요 :(
문제 열심히 풀고 나니 준비해주신 굿즈를 받고, Elice 기업 소개를 들었다.
스타트업의 눈부신 성장과정과 기업의 가치관, 다양한 복지 등을 소개해주셨다.
그리고 특정 분야의 트랙으로 취업하기 위해 어떤 것을 준비하고, 지원 절차도 함께 설명해주셨다.
입사하면 아이패드 준대요..
Networking Session 시간에는 다른 학교에서 오신 분들과 함께
이런 저런 얘기를 나눴다.천하제일 TMI선발대회, 인스타 맞팔, 연합 행사 관련해서 궁금한 점, 아까 문제 풀다 막힌 부분 등
그냥 생각나는 대로 물어보고 교류하는(?) 시간을 보냈다.
굿즈는 elice에서 주신 굿즈와 gdsc에서 주신 굿즈가 있다.
초콜릿과 물은 정리하시는 운영진 분들을 돕기 위해 받아왔다.
elice 꾸러미 안에는
다양한 스티커와 마우스패드, 가습기(혹은 쉐이커) 물티슈, 볼펜이 들어있다.
노트북에 붙이고 이런 거 싫어하니까 소중하게 간직하는 걸로 :)
마우스패드는 마침 집에 없었는데 바로 뜯어서 사용했습니당