Log for everything - Day

Google Code Jam, 그리고 파이썬

|

오랜만에 블로그를 쓴다.

알고리즘, Code Jam

알고리즘과 그리 친하지는 않지만, 아예 손을 놓지 않으려고 매년 Google Code Jam에 참가 신청을 한다. 매년 예선만 통과하자라는 생각으로 크게 욕심부리지 않고 있는데, 다행히 매번 예선은 통과했었다. 작년부터는 파이썬에 좀더 익숙해지기 위해서 파이썬을 이용해서 문제들을 풀고 있다.

Code Jam 2018, 그리고 파이썬

참가신청만 해놓고 완전히 잊고있다가, 주말에 늦잠자다 일어나서 컴퓨터를 켜보니까 메일이 와있다. 6hours left 말이 여섯시간이지… 나는 아침까지 자느라 2시간도 채 안남았다고… 그래도 예선 통과를 위한 점수를 맞추기는 할만할것 같아서 Code Jam 사이트에 접속!

분명 작년까지는 small input과 large input의 데이터셋에 각각 프로그램을 돌리고, output 파일을 제출했던 Code jam 형태가 갑자기 online judge 형태로 바뀌었다. 코드도 페이지 상에서 작성하여 바로 제출할 수 있는 형태로 바뀌었고, 따로 입력 데이터가 주어지지 않는다. 그리고 테스트 파일을 다운받을 수 있는 뭔가 새로운 양식의 문제도 하나 끼어있는 것 같다. 그리고 judge가 버벅이는지 이에 대한 안내 문구까지 출력되고…

그래도 문제를 둘러보니 1, 2번만 풀면 38점으로 예선을 통과할 수 있을 것 같다. 다행히 시간내에 1, 2번을 다 풀고, 결과를 확인하는데.. 2번의 15점 배점 문제가 TIME_LIMIT_EXCEEDED가 나서 실패했다.

쉽다고 생각한 문제에서 틀린 이후 제일 먼저 든 생각은 Python의 느린 입출력 때문이 아닐까라는 생각이 들었다. input() 대신 sys.stdin.readline()을 썼어야 하나 등등… 작년까지는 로컬에서 아웃풋 파일을 만들어서 업로드를 하면 되는 형식이라, 입출력 속도에 민감하게 신경쓰지 않았기도 하고, 코드가 돌아가서 결과만 나오면 된다는 생각이었으니 말이지.

라운드가 끝난 이후 Analysis를 살펴보고 실제로는 내 구현상의 문제였다는 것을 알게되었다. ‘시간초과가 난 것은 파이썬이 느리기 때문이다.’라고 생각한 내 자신이 민망하기도 하고, 결과적으로는 처음으로 예선 라운드에 떨어지게 되었지만 오히려 더 배운것은 많았던 Code Jam이었다.

그리고 jekyll

작년 12월 경 MacOS가 High Sierra로 업데이트 되면서 Ruby 2.0이 지원되지 않게 되었다. 덕분에 Ruby Gem으로 이루어진 Jekyll 또한 먹통이 되었다. (한동안 블로깅을 멀리한 탓에 내가 jekyll 사용법을 까먹은 줄 알았다…)

jekyll을 다시 사용하려면 거쳐야 할 방법에 대해서는 아래 링크 참조.. https://github.com/jekyll/jekyll/issues/6637

Comments