본문 바로가기

연습 노트

(5)
형독 카트라이더 디비디비딥 최적(?)의 위치 선정 넥슨이 서비스하는 「크레이지레이싱 카트라이더」는 제가 초등학생일 때부터 있었던 유구한 전통(?)의 온라인 게임입니다. 초등학생 때 부족한 실력이나마 이 게임을 열심히 즐긴 기억이 있습니다. 대학생 때 친구들과 술 한 잔 하고 PC방에서 함께 아이템전을 돌리던 추억도 새록새록 떠오릅니다. 요즘은 직접 플레이하지는 않지만, 유튜브에서 카트라이더 영상이 종종 추천되면 즐겨 시청하는 편입니다. 그 중에서도 형독방송 채널의 영상을 많이 시청하는데요. 저번 주에는 '디비디비딥'이라는 이름의 게임을 빠른 시간에 끝내는 미션을 수행하는 영상이 올라왔습니다. 형독방송 「🔥머리만 서로 다르게 돌리면 된다는 고액 미션🔥 와 진짜 레전드 영상 나왔습니다ㅋㅋㅋㅋㅋㅋㅋㅋ」 2022. 영상에서 형독이 즐긴 '디비디비딥'은 다음과 ..
이분 매칭에 관한 몇 가지 반례들 매칭(matching), 특히 이분 매칭(bipartite matching)은 제 주된 연구 분야 중 하나입니다. 제 블로그에 매칭 관련된 포스트가 가장 많은 것을 보면 쉽게 유추할 수 있으시리라 생각합니다. 최근 개인적으로 이분 매칭과 관련하여 몇 가지 명제를 세워 증명해 보려고 했습니다. 만약 참으로 밝혀진다면 제가 요즘 하는 연구에 도움이 될 명제들이었습니다. 하지만 안타깝게도 모두 반례가 존재하였습니다. 어디 가서 써 먹을 곳도 없다 보니 약간은 울적한 마음에 블로그에라도 적어 보려고 합니다. 혹여 비슷한 주제를 고민하시는 분들이 계시다면 이 글이 약간의 도움이 되었으면 합니다. 차수와 간선 서로소인 최대 매칭의 개수 첫 번째 명제는 다음과 같았습니다. 어떤 이분 그래프의 최소 차수(degree)..
알고리즘 덕후의 「투 더 문」 퍼즐 푸는 방법 저는 게임을 좋아합니다. 특히 좋아하는 장르는 롤플레잉 게임이나 퍼즐 게임인데요. 롤플레잉 게임을 할 때는 주로 그 속에 담긴 이야기를 따라가는 것을 즐기고 퍼즐 게임을 할 때는 복잡한 문제를 시간을 들여 해결할 때 큰 희열을 느낍니다. 만약 롤플레잉 게임에 흥미로운 퍼즐 요소가 섞여 있거나 퍼즐 게임에 감동적인 이야기가 더해져 있다면 말하지 않아도 제 취향일 것입니다. 글을 쓰는 현재로부터 약 두세 달 전 제 취향의 게임을 하나 플레이했습니다. 바로 「투 더 문(To the Moon)」입니다. 사실 이 게임을 처음 구매할 때는 이 게임에 퍼즐 요소가 들어있을 줄 몰랐습니다. 스팀에서 게임을 구매하는 분들이라면 많이 공감하실텐데, 저는 스팀에서 할인 행사를 진행할 때 게임을 좀 쟁여 놓는 편입니다. 이 ..
표류 중인 어부 문제 (Lost Fisherman Problem) 친한 형이 오랜만에 연락이 와서 다음 유튜브 영상을 공유해주었습니다. 이 영상에서 소개된 첫 번째 문제가 개인적으로 흥미로워서 공유해 보고자 이 글을 쓰게 되었습니다. 재미있는 문제를 소개해준 형한테 고맙다는 말을 전합니다. 출처 : Zach Star on Youtube (youtu.be/6O8Jyrr9LRc) 문제는 다음과 같습니다. 한 어부가 나침반도 없이 바다로 나섰는데, 얼마 지나지 않아 갑자기 해무가 자욱하게 끼기 시작하였습니다. 더이상 조업을 할 수 없다고 판단한 어부는 해변으로 돌아가기로 결정하였습니다. 해변가는 직선으로 곧게 뻗어 있고 어부는 해변가에서 수직으로 정확히 1㎞ 떨어진 지점에 있는 상황입니다. 문제는 어부가 나침반을 갖고 오지 않아서 도무지 어느 방향으로 가야 해변가가 나오는지..
C++ Windows 멀티스레딩 Windows 환경에서 멀티스레딩을 연습한 코드입니다. 개인적으로는 나중에 또 쓰일 것 같아서 작성하였습니다. 저는 코딩은 그다지 잘하지 않습니다만 그래도 방문하신 분들께서 코딩하실 때 약간이라도 도움이 될까해서 공유합니다. #include #include #include #include static std::mutex coutMutex; typedef struct MyData { int a1; int a2; } MyData, *PMyData; unsigned __stdcall myThreadFunc(void* lpParam) { MyData* param = (MyData*)lpParam; { std::lock_guard lock(coutMutex); std::cout a1 a2 = i * i + 3 *..