본문 바로가기

분류 전체보기

(69)
Growing a Language: Go는 좋은 언어인가? Disclaimer: 이 글은 KAIST CS320 "Programming Language" 수업의 과제의 일환으로 작성된 것입니다. 과제물로 복사-붙여넣기 하여 제출하지 않기를 바랍니다.YouTube lecture link: https://www.youtube.com/watch?v=_ahvzDzKdB0&feature=youtu.beIntroduction: 강연 요약스틸의 OOPSLA 1998 명강연에서 그는 영어에서 단일 음절 단어만을 primitive로 하는 사례를 통해 아주 작은 언어로 복잡한 표현을 하는 것이 얼마나 답답한 일인지를 보여준다. 예를 들어, 단일 음절 단어가 아닌 woman을 wo- + man으로 나타내어야 하는 것과 같은 예시가 있다. 그는 사람들이 다양한 프로그램을 잘 짜는데 사..
첫 인턴십을 구하는 학부생을 위한 이력서 쓰는 법 4년여 간의 회사 생활을 뒤로 하고 대학교에 복학해보니, 첫 인턴십을 구하는 친구나 후배들이 많이 보인다. 대개는 인턴십 지원의 첫 관문인 이력서 작성을 어려워하는 경우가 많은듯 하다. 나는 내가 대단한 사람이 아님을 앎에도 문을 두드려본다는 생각으로 저학년 때 부터 다양한 회사의 인턴십을 지원했고, 여러 번 인턴십을 수행해보았다. 그리고 회사에 다니는 동안 다양한 인턴, 신입 및 저년차 경력직 지원자의 면접을 본 경험도 있다. 조금은 특이한 수상할 정도로 이상한 경험을 해본 대학생 신분을 살려, 이 글을 적어 본다. 물론, 나 역시도 아직 학부생이라는 점에서 조언을 해준다기 보다는 경험을 공유한다는 측면에서 읽는 것이 더 적합할 것이다. 참고로, 모두에게 이 글이 정답이 아닐 수 있고, 이 글에도 한계..
ICPC Asia Seoul(Busan) Regional Contest 후기 (Last Dance) 어제 오늘 마지막 ICPC를 치고 왔다. 내년 부터는 나이 제한이 걸려 나가기 어려울 가능성이 높기 때문이다.10월 11일 인터넷 예선다음날 면접 일정이 있어 출국해야 하는 상황이라, 팀노트를 인쇄하고 짐을 챙겨두고 나왔다. 오랜만의 대회라 긴장이 많이 되었지만, Subway에서 점심식사를 하며 긴장을 풀었다. 내가 문제지 앞 부분을 봤는데, A가 쉬운 DP 같아서 내가 구현해서 해결했다. (7분) khf1700이 F가 쉽다고 구현하였다. 하지만 틀렸다. 알고리즘이 맞는다는 사실을 증명할 수 있다 하여 내가 같이 봐줬다. 0을 제대로 처리 안한 것을 내가 지적했으나, 나 역시도 한 번 틀리게 고쳤다. 내가 코드를 한 번 더 고쳐서 맞았다. (22분) 내가 H번이 쉬운 문제라고 주장했고, 세그먼트 트리를 ..
ICPC Asia Taichung (대만) Regional Contest 후기 이번에 복학하면서 5년만에 ICPC를 참여한다. Asia-Pacific Championship 티켓을 날먹하겠다는 원대한 포부를 갖고, ICPC 대만 리저널에 참여했다. 대회를 아쉽게도 잘 못 쳤지만, 비슷한 목표를 가지고 해외 리저널을 가는 팀들이 있으리라는 생각에 간단히 그 과정을 글로 남겨본다.참가를 결심하기까지여름에 RUN 디스코드에서 사람을 구해 ICPC 팀을 결성했다. 당시 상황은 이랬다:leejseo: ICPC 서울 리저널 수상. WF는 못가봄. CP 안한지 오래되어 잔 실수가 많고 기복이 큼. 퍼포먼스가 좋으면 대회 때 D3까지 해결 가능, 안 좋으면 P2 정도 까지 해결 가능.juneharold: 올해 ICPC를 잘 치고 싶어하는 상황. 리저널 참가 경험 없음. CodeForces 퍼플k..
사전순으로 최소인 최단 경로 문제. 모든 간선의 가중치가 1인 (유향) 그래프 $G = (V, E)$와 시작점 $s$, 끝점 $t$가 주어졌다고 하자. 각 간선 $e \in E$에는 label $\ell(e)$가 있다. $s$에서 $t$로 간선 $e_1, e_2, \cdots, e_k$를 거쳐 이동하는 경로를 경로 튜플 $(\ell(e_1), \ell(e_2), \cdots, \ell(e_k))$로 표현하자. $s$에서 $t$로의 모든 최단 경로 가운데 경로 튜플 이 사전순으로 최소인 경로를 찾아보자. 일단, $s$에서 BFS를 돌리며, $O(|V| + |E|)$ 시간에 shortest path spanning tree를 만들 수 있다. 고로, $d(u) + 1 = d(v)$를 만족하는 $u \to v$ 간선만 남겨두고 생각할 수..
[퍼즐] 한 변의 길이가 1+ε인 정육각형 이번에 2025 조합론 워크샵에 다녀왔다. 많은 유익한 강연들이 있었고, 다양한 사람들과 이야기를 나누어 볼 기회가 있어서 좋았다. 워크샵에서 한 학교 후배가 알려준 퍼즐이 재밌어서 공유해본다. 한 변의 길이가 1+ε이고, 아랫변과 윗변이 x축에 평행하게 놓인 정육각형을 한 변의 길이가 1이며 세 변 중 하나가 x축에 평행한 단위 정삼각형으로 덮는 상황을 생각해보자. (아래 그림과 같이 두 종류의 정삼각형이 있을 것이고, 반드시 각 정삼각형의 한 변은 x축과 평행해야 한다.) 이 때 최소 몇 개의 정삼각형이 필요할까? (정삼각형 끼리 겹치는 것은 허용된다. 즉, packing이 아닌 covering 문제다.) 아래는 나의 간략한 풀이다. 풀이를 접어 두었으니, 충분히 고민해보고 열어보는 것을 추천한다. ..
구속 240시간 vs. 10일: 전례 없는 판결의 파장 서울중앙지법 지귀연 판사는 내란죄로 기소된 피고인 윤석열에 대해, 구속 기간을 '구속 시작으로부터 10일'이 아닌 '240시간 후'로 계산해야 한다는 전례 없는 해석을 내세워 구속취소 청구를 받아들였다. 이 판결은 지금까지 유지되어 온 구속 기간 산정 방식과 정면으로 배치된다.이 판결을 계기로 변호사들이 나서서, 구속 후 240시간을 초과했지만 10일 이내에 기소된 사례들을 찾아 무료로 구속취소 청구를 도와주면 좋겠다. 더 나아가, 현재 구속기소 되어 실형을 선고받고 복역 중인 사람들 중에서도 이 조건에 해당하는 이들에게는 재심을 청구하도록 도와주기를 바란다. 윤석열씨의 구속 취소와 관련한 판결이 유효하다면, 이들의 공소 또한 피고인의 권리를 침해하는 ‘가짜 구속’에 기반한 구속기소로 이루어졌기에 무효가..
Per Se, NYC 뉴욕 최고의 다이닝 중 하나라고 소개 받은 Per Se 에서의 저녁식사. 언젠가 꼭 한번 가봐야겠다는 결심을 하고서 오직 여기에 오기만을 위해 돈을 따로 조금 모아뒀는데, 마침 출장이 뉴욕으로 잡혀서(!) 생각보다 빠르게 방문했다. 미쉐린 가이드에도 3스타로 등재된 곳인 만큼, 큰 기대를 하고 방문했다. 후기를 요약하자면, 이 가격 대의 다이닝은 처음 와봤지만, 확실한건 코스 처음부터 끝까지 돈 생각 안 하고 음식에 집중할 수 있었던 시점에서 대성공이라 할 수 있겠다. 마지막에 주방을 투어 시켜줘서 좀 둘러봤는데, 주방도 굉장히 체계적으로 돌아갔고, 파이프라이닝의 결정체와도 같았다. 처음에는 샴페인을 한잔 주는데, 그냥 적당히 잘 만든 샴페인 느낌이다. 청량감 있으면서도 잔에 충분히 두면 빵 같은 느낌도..
2023년 회고 Facebook에 업로드 했던 2023년 회고 글. 일단 티스토리에도 옮겨둔다. 마크다운 기반의 더 나은 + 영속성 있는 블로그 서비스를 찾아봐야 하는가 고민 중. 2023년 회고 2023년 한 해는 예년에 비해 비교적 평안하게, 쉬어갈 수 있었던 한 해인 것 같습니다. 한 해를 보내면서 때로는 젊은 나이에, 벌써부터 매너리즘에 빠진채 살아간게 아닌가 싶은 생각이 들긴 했지만, 그래도 후회는 없습니다. 편안하게 산 것 치고는 수확이 생각보다 많았기 때문일까요? 그런 만큼, 어떤 것을 얻었고, 어떤 것을 잃었는지 정리해보는게 더욱 중요할 것 같았습니다. 직장 올해 초, 현재의 직장으로 직장을 옮기게 되며 가장 즐겁게 협업했던 사람들과 다시 일할 기회를 얻게 되었습니다. 직장에서는 한 해 내내 즐겁게 일 했..
Massively Parallel Computing Model 이 글에서는 분산 처리와 관련하여 최근에 제시된 두 계산 모델에 대해 간단히 알아본다. 또한, 그 계산 모델 상에서 돌아가는 잘 알려진 (그러면서도 이론적으로 중요한) 문제에 대한 알고리즘 및 계산 이론적 결과를 알아본다. 다만 이 주제에 대해 deep 하고 formal한 내용은 전혀 다루지 않는다. 전반적으로 두 계산 모델에 대한 이해를 조금 만드는 정도를 목표로 한다. 이 글에서 "높은 확률"은 최소한 1 - (polynomially small) 이상이라 이해하면 좋다. Massively Parallel Computing Model (MPC) 먼저, Massively Parallel Computing Model(MPC)에 대해 알아보자. MPC는 다음으로 구성되는 계산 모델이다: 입력 데이터 크기 $..