0. 트위터에서 CTF 대회와 그 커뮤니티 규칙(?)에 대한 토론이 활발하게 일어나고 있어서 저도 이것에 대해 이야기를 해보려고 합니다. 저는 CTF와 관련된 어떠한 커뮤니티에도 속해 있지 않으며, 멘토와 같은 선생님 없이 혼자서 독학으로 공부하고 있습니다. pwnable.kr 문제만 2달 내내 팠고, 지금은 53등에 있네요. 저는 CTF 커뮤니티를 단 하나도 모르기 때문에 글에서는 주로 PS 커뮤니티의 이야기를 할 것입니다. 저는 CTF 커뮤니티가 변하는 것을 간절히 여기진 않습니다. 보안을 취미로 하고 있고, 보안 실력 뒤쳐진다고 먹고 살 걱정을 하지도 않습니다. 대회도 딱히 잘하고 싶은 마음은 없어서 커뮤니티에 속할 의무도 없습니다. (대회는 팀으로 이뤄지다보니 어떤 그룹에 소속되어있는 것이 중요한..
0. 8월 15일 정도부터 시스템 해킹 공부를 독학으로 시작했습니다. 시간으로 따지면 2개월 반 정도 됐네요. pwnable.kr에 있는 문제만 풀고있고, 지금은 9문제 (+tiny 2문제)만 남았습니다. 그래도 1년동안 팀원 코드만 봐서 그런지 어셈블리도 그냥 무난하게 잘 읽혀서 답답하지 않고, 정상적으로 돌아가고 있는 흐름을 쉘로 바꾸려고 노력하는 것도 나름 재밌습니다. 정확히는, 재밌으니까 지금까지 한 것이겠지만요. 1. 솔직히 이런 걸 혼자 공부하는 건 너무 어렵습니다. 구석에 있는 지식일수록 한국어 자료는 당연히 없고, 영어로 검색을 하면 쓸모없는 것들이 너무 많이 나옵니다. 문제를 하루 내내 생각하다 보면 온갖 방법을 다 떠올리게 되는데, 각 방법이 되는지 여부를 검색해야만 알 수 있고, 심지..
1. 2달 전부터 해킹 문제풀이, 그 중에서 포너블을 공부하고 있습니다. 딱히 멘토나 그런 건 없고, 인터넷 찾아가면서 열심히 독학으로 밀고 있습니다. 독학의 장점은 내 마음대로 공부해도 잔소리 들을 일이 없기 때문에 재미있다는 것이고, 단점은 배우는 속도가 느리고, 모르는 문제를 물어볼 사람이 없다는 것 정도? 전 문제를 풀 때 잘못된 풀이를 생각하는 것도 의미있는 행동이라고 생각하기 때문에, 안풀리는 문제를 오랫동안 생각하는 것만으로도 좋다고 생각합니다. 다만 몰라서 못 푸는 문제를 만나면 시간낭비가 꽤 큽니다. 머 그래도 독학이 재미있지 않거나, 빠른 실력 상승을 원하신다면, 독학은 좋은 길이 아니긴 합니다. 2. 보통 학교 공부를 하고 남는 시간에 놀지만, 저는 제 할 일을 하고 남는 시간에 학교..
0. 잡담 ucpc 본선이 끝나고 나서 후기를 쓰려고 다짐했지만, 그 사이에 일이 너무 많아서 2주나 지난 지금에서야 씁니다. 그동안 프로그래밍 대회에 문제를 한 번 내보고 싶었는데, 큰 대회는 문제를 못내고, 코포나 탑코더는 레이팅이 걸려있어서(..) 가장 부담이 적어보이는 ucpc에다가 문제를 만들어 넣었습니다. 결과적으로 매우 만족스러운 문제들이 나왔기 때문에, 올해 국내대회중에서는 가장 좋은 대회가 되지 않을까 합니다. 쓸 내용이 중요하지도 않고 해서, 생각나는대로 써보려 합니다. 1. 인터넷 예선1) 문제 데이터를 만드는 일은 매우 쉬울 수도 있고, 매우 어려울 수도 있습니다. 그 차이는 매우 심해서, 30분만에 데이터가 만들어지는 문제가 있는가 하면, 하루 내내 만들어야 겨우 완성되는 경우도 ..
-1. 잡담 https://www.acmicpc.net/blog/view/45 1년 반 전, 질문게시판 답변률이 20%가 안되던 때에 쓰여진 글입니다. 여기서 각 문장의 의도가 무엇인지 하나씩 적어보겠습니다. 최근에는 대부분의 질문글이 가이드라인을 잘 지켜서 답변하기가 매우 수월합니다. 이런 점은 좋지만, 가이드라인에 맞지 않는 질문이 무시당하는 느낌이 들기도 합니다. PS를 어느정도 한 사람이 보면 가이드라인은 당연한 것들이지만, PS를 갓 시작한 사람들에게는 당연하지 않을 수 있다고 생각합니다. 제가 질문에 답변할 때는, 질문 내용 뿐만이 아니라, 코드와 질문자의 태도 전체를 확인합니다. 단순히 "시간초과가 납니다"라는 내용이 있고, 시간복잡도에 대해 모르는 것 같다면, 시간복잡도에 대해 공부해보라는..
-1. PS는 Problem Solving의 약자로, 프로그래밍으로 문제를 푸는 분야를 말합니다. 0. 서론 (+잡담) 드디어 PS를 접고 PS4를 열심히 하고 있습니다. 최근에는 플스4로 아틀리에 신기시리즈를 열심히 하고 있는데, 취향에 맞아서 재밌게 즐기고 있습니다. 지금까지 문제 풀면서 힘든적이 엄청 많았던 거 같은데, 요즘은 문제의 N도 안보는 생활을 하고 있어서 매우 만족하고 있습니다. 이제 재밌게 대회를 하기에는 너무 멀리 왔다고 생각합니다. 사실 저는 대회에 참가하는 것을 즐기는 성격이 아닙니다. 성격상 대회에서 못하면 힘들고, 잘하면 딱히 좋아하지 않아서, 결국 힘들기만 합니다. 그래도 작년 1년 6개월동안은 대회는 싫은데 대회를 나가야해서, 인지부조화에 시달리면서 열심히 생각한 것들이 있..
0. 서론 + 잡담 제가 처음으로 프로그래밍을 시작한 것은 08년도 1월입니다. 10년째 프로그래밍을 했고, 고비도 엄청 많았지만, (자세한 내용은 나중에 말해보기로 하고) 드디어 이 대회를 그만할 수 있게 되어 영광입니다. 이제 선수생활은 그만하기로 했고, 더이상 병신같은 새로운 내용을 공부하지 않고, 대회는 하고싶을 때 칠 것 같습니다. 이제 진짜 하고싶은 것들에 매진할 생각입니다. 그 전에, 머리를 비우기 위해 ICPC를 하면서 생각했던 것들을 몇 가지 쓰고 있습니다. 잠깐 변명을 하자면, ICPC World Final을 이끌고 있는 사람들의 생각이 저희팀과는 많이 달랐고, 때문에 출제진에게 뒤통수를 얻어맞은 것이라고 생각합니다. 저희가 잘못했다고 생각하지 않습니다. ICPC World Final에..
0. 한 사람의 장단점을 분석하는 것은 엄청나게 어렵다고 생각합니다. 특히 CP에서 제출 시간과 등수만으로 장단점을 분석하는 것은 불가능에 가깝습니다. 때문에 제가 그동안 연습하면서 분석한 제 단점(과 일부의 장점)을 대회 코드와 제출 로그와 함께 정리하려고 합니다. 요약 1. 단점1) 잔실수가 매우 많고, 그것들을 고치기 위한 디버깅에 시간을 많이 쓴다.2) 수식을 이해하는 속도가 매우 느리고, 수식, 코드, 풀이를 증명하는 것을 매우 힘들어한다.3) 경우가 많아질수록 시간이 배로 오래 걸리거나, 분석에 실패한다. 2. 장점1) 문제 풀이를 대부분 생각할 수 있거나, 빠르게 생각할 수 있다.2) 단점에 해당하지 않는 문제에 강하다. 1. 단점1) 잔실수가 매우 많고, 그것들을 고치기 위한 디버깅에 시간..
블로그 포스팅을 최근들어서 잘 안하고 있지만, 그래도 연습은 꾸준히 하고 있습니다. 다만 팀원이 개강한 이후로 팀연습 횟수가 줄었습니다. 이번 연습은 10등입니다. 현 코포 레이팅 1위팀인 북경대나, 다른 몇몇 팀들은 대회를 치지 않았기 때문에 실제 월파에서는 은~동 수준의 성적일 것 같습니다. 대전 1달 전에 한 연습인 GP of Spb에서 16등을 했던 때와 비슷하게, 팀워크를 다시 돌아볼 필요가 있어 보였습니다. 최근 연습에서는 예전 GP에서 잘하던 때만큼의 좋은 느낌이 느껴지지 않아서 조금 불안합니다. 연습 중에는 팀원끼리의 불만이 없었던 것 같은데, 요즘 들어 점점 늘어나고 있는 것 같습니다. 그리고 전체적으로 연습량이 줄어서 지금보다 더 나아질 수 없을 것 같은 불안감도 듭니다. ~1시간 제일..