풀이 스포 주의. 일단 결과부터 말하자면 1047위로 아슬아슬하게 떨어졌다. R1B랑 R1C가 있으니 문제는 없지만 작년 정올 이후로 거의 문제를 안 풀었더니 실력이 줄어든것 같아 슬프다.

A

A에서 시간 낭비를 많이 한 게 탈락의 가장 큰 원인이라고 생각된다. 문제 이해를 잘못해서 2번 케이스에서 rate가 정수여야 한다고 멋대로 가정하고 풀면서 왜 예제 마지막 케이스가 244인지를 이해하지 못하고 있었다. 5분컷 가능한 문제인데 30분만에 AC.

B

풀이는 금방 찾았는데 코드에서 B랑 N을 헷갈리는 바람에 이것도 시간을 쓸 데 없이 썼다. 풀이 자체는 time으로 파라메트릭 돌리는 전형적인 문제.

C

처음에 접근한 방법은 컨벡스헐 구하고 컨벡스헐 위의 두 점을 O(N^2)으로 잡고 적절히 영역을 잘 잡아서 영역안의 점들을 하나씩 제거하면서 처리하면 O(N^2 + N)에 되지 않을까 했는데 이렇게 저렇게 바꿔봐도 안 되길래 포기.

두 번째는 왠지 컨벡스헐 구한 다음 한 껍질을 벗기면 다음 컨벡스헐에 포함된 점들의 값은 1이고 그 다음은 2고 이런식으로 나아갈 것이라고 멋대로 추측하고 열심히 짰으나 예제부터 안 나옴. 짜기 전에 잘 볼 걸… 짜서 돌려보고 나니까 왜 이게 답일 것이라 추측했는지 모르겠다.

시간이 얼마 안 남았길래 틀린 코드들을 짜면서 중요한 부분은 다 짰으니 급하게 지수 알고리즘으로 C Small이라도 풀어서 내려고 했으나 WA. 아직 어디를 틀렸는지 못 찾았는데 이것도 B처럼 멍청한 실수를 했을듯한 기분이 든다.

C Large가 풀면서 실력 쌓기 좋은 문제라고 판단되어 대회 끝나고 생각하는 중이었는데 그 직후 트위터에 Bumsoo Park가 올린 C 풀이를 보고 말았다. 다행히 내 의식의 흐름 속에 있었던 풀이라 많이 안타깝지는 않았다. 가장 처음 접근했던 방법을 convexhull-wise에서 point-wise로 바꿔서 처리하면 된다고 한다.

C 코드 저장해 뒀다가 틀린 부분 찾고, 나중에 C Large 짜 보는 것으로 하고 R1A는 여기서 마무리.

우리과 학부생 대상으로 CTB Locker 저격이 들어왔다. Gmail로 연동해서 쓰던 사람들은 자동으로 차단된 모양인데, 교내 메일 시스템에도 바이러스 검사 시스템이 있긴 한데 안 걸러져서 친구 한 명이 감염되고 말았다. 아직 정보가 다 전달이 안 되어서 감염자가 늘어날수도 있음.

요약하면 컴퓨터에 있는 사진, 문서, DB 및 기타 중요 파일들을 전부 암호화 해 버린 뒤 ‘비트코인을 몇 시간 내에 보내지 않으면 영원히 잠긴다!’라는 깡패 바이러스다. 몇 달 전에 굉장히 유명했었던걸로 기억함.

나는 메일 제목이랑 주소랑 내용을 보고 바이러스인것 같은데 궁금해서 일단 받아봤다. cab 파일이고 연결 프로그램이 탐색기랑 반디집 있길래 반디집으로 열어봤고, 안에 scr 파일 들어 있는것까지만 보고 지웠다. 나중에 알아보니 여기서 탐색기 선택했으면 감염되는듯하다. 천만다행이라 할 수 있다.

여튼 희생자가 더 늘어나지 않고 감염된 친구도 잘 해결됐으면 좋겠다. 그리고 앞으로 학교 메일 포털은 쓰지 말아야겠다. 저번에 해킹 동아리에서 XSS 쿠키 탈취 시연하던데 그 때는 옮겨야겠다고 느끼지는 못했었는데 이제 나도 Gmail로 갈아타러 감 ㅃㅃ

CTB-1 CTB-2

ABC Small Large 풀었다. AB는 쉬웠고, C는 로직은 찾았는데 코딩도 까다로웠고 디버깅에 한참을 썼다. 원래는 D도 깔짝거릴 예정이었는데 C를 푸는데 너무 오래 걸리는 바람에 졸려서 그냥 잤다.

그나저나 이번 C는 디스크립션을 약 한 사발 마시고 쓴 듯 하다. Dijkstra의 ijk와 사원수를 이용한 너드스러운 말장난이 나왔는데 읽는 순간 감탄했다 ㅋㅋㅋ 알고리즘 시험에서 Dijijstra라고 썼는데 사원수로 ijij = ijk니까 맞게 해 달라고 우기는 식(…) 우길 수 있는지 없는지를 판단하는 프로그램을 짜는 문제였다.

이번에 반성할 점은 같은 로직을 좀 더 쉽고 빠르고 정확하게 코드로 표현하는 능력을 길러야겠다는 점. 다른 사람들의 C 풀이를 보니 착안한 아이디어는 똑같은데 내 코드가 지나치게 복잡하다고 느꼈다. 실제로 C에서 2번 오답을 제출했고, 푸는데 시간도 굉장히 오래 걸렸음.

딥 블루에 대해서 리포트 쓰면서 위키 뒤지다가 정신 차려보니 The Game of the Century 해설을 열심히 보고 있었다. 으 리포트 언제 쓰지.

체스 잘 하는 사람들 보면 진짜 똑똑한 것 같다. 특히 자명해 보이지 않는 희생수들이 결국 이득을 가져오는 것들을 다 계산했다는게 소름…

체스 좀 더 빡세게 하면 더 잘 할수 있을 것 같기는 한데 그렇게까지 하고 싶지는 않다. 지금처럼 그냥 한 두 수 앞만 내다보면서 하는 체스도 충분히 재밌다.