본문 바로가기

분류 전체보기

(163)
알고리즘을 잘하고 싶어요! 들어가기 전에 타 과고생 분께 '알고리즘을 어떻게 공부해야 하는지'에 관한 질문을 받았습니다. 맥락상 알고리즘보다는 PS(Problem Solving)에 관심이 있으신 것 같지만, 자세한 이야기는 뒤에서 하도록 하겠습니다. 사실 예전부터 쓰고 싶었던 주제이기도 하고, 답변을 드리기에는 말이 길어질 것 같아서 이렇게 글을 쓰는 것으로 답변을 대신하려 합니다. 제가 경험하고 느낀 것을 토대로 작성하는 글이니 참고하는 정도로만 가볍게 읽어주세요. ㅎㅎ · 이 글은 알고리즘을 어떻게 공부해야 할지 몰라 고민하는 분들을 위한 글입니다. 주변에 조력자나 동아리 등이 있는 분들에게는 해당 사항이 없을 수 있다는 점 참고해주세요. · 필자의 생각과 발언은 무책임하거나 틀릴 수 있습니다. 글에 관한 피드백이나 질문은 항..
마우스를 바꿨다 기존에 쓰던 마우스가 고장 나서 마우스를 바꾸게 되었다. 별 정보 없이 대충 만져보고 괜찮은 걸로 샀는데 기존 마우스와 꽤 달라서 조금 당황스럽다. 1. 블루투스 마우스가 아니다. 무선이면 다 블루투스일 줄 알았는데 아니었다. 조그마한 USB 칩을 노트북에 꽂아서 써야 하는데, 노트북이 흰색인지라 많이 안 어울린다. 2. 손의 위치가 미묘하게 다르다. 항상 손을 마우스 끝 쪽에 놓았는데, 얘는 그게 안 된다. 뒤쪽에 붙여야 편한 듯. 3. 소리가 거의 나지 않는다. 물론 학습실에서 눈치를 덜 봐도 되니 좋긴 한데, 소리가 안 들리니 클릭이 되고 있는지 판단이 안 선다. 에잉 모르겠다. 쓰다 보면 적응되겠지.
Codeforces Round #736 (Div. 1) Dashboard - Codeforces Round #736 (Div. 1) - Codeforces codeforces.com 떡락했다. 직전까지 애니 보다가 급하게 참가했는데, 그냥 마저 볼 걸 그랬다. Prob. 1A 인접한 사람 중 나보다 큰 사람이 있다면 무조건 죽는다. 그래서 나보다 큰 사람이 몇 명인지가 중요한데, 이를 set $N$개로 관리하다가 뇌절하고 단순히 명수만 세주는 식으로 코드를 갈아엎었다. Prob. 1B 2 이상의 수로 나누어 떨어지는 최대 구간을 구하는 문제로 치환할 수 있다. 투포인터로 풀어야 할 듯 한데, gcd를 롤백할 방법만 고민하다가 gcd 세그가 나중에 생각이 났다. 그런데 투포인터도 계속 잘못 짜고 bottom case를 잘못 넣어줘서 페널티를 엄청 쌓아버렸다. ..
[CodeUp 4035] 커피전문점 커피전문점 1. 첫째 줄에 트리의 노드(후보지)의 개수를 나타내는 정수 n이 주어진다. (2≤n≤100,000) 후보지는 1부터 n까지의 번호로 구분된다. 2. 둘째 줄부터 n-1개의 줄에 각 줄마다 후보지 쌍을 나타내는 두 codeup.kr 코드업을 밀던 중에 흥미로운 문제를 발견해서 포스팅한다. 다른 분들과 풀이의 방향이 달라 시간은 조금 느리지만, 다행히 코드는 깔끔하다. ㅎ 더보기 정해는 Union-Find 와 bfs 를 요구하지만, 사실 lca 만으로 풀린다! 생각의 편의를 위해 트리의 루트를 A로 만들어주자. 최적지의 집합이 (A-B 경로) $\cup $ (A-C 경로) 라는 것은 어렵지 않게 짐작 가능하다. 따라서 최적지의 개수는 $dep[a]+dep[b]-dep[lca(a,b)]+1$ 로 ..
Educational Codeforces Round 112 (Div. 2) Dashboard - Educational Codeforces Round 112 (Rated for Div. 2) - Codeforces codeforces.com 잘 풀고 있다는 느낌이 드는데 점수가 생각보다 오르지 않는다 ㅠ Prob. A $6:15=8:20=10:25$ 이므로 무엇을 선택할지는 딱히 중요하지 않다. $6$이상 짝수는 모두 만들 수 있으니 $n