Park Jonghyeon

지킬 블로그에서 테마 정의와 게시물 자료 분리하기

무엇이 휴가나온 군인의 시간을 앗아갔는가 다른 많은 분들도 그렇듯 저는 Jekyll(지킬)을 블로그 엔진으로 사용하고 있습니다. 비슷한 다른 대안들 중 가장 상징적이면서, 가장 성숙하고, 다른 대안이 등장하기 전부터 지킬을 사용해왔습니다. 어쩌면 관습적으로, 한편으로는 편리해서 지킬을 사용하고 있는 것 같습니다. 정적 웹 페이지, 하지만 블...

군대에서 Codespaces 사용하기

이전에 군대에서 프로그래밍 공부를 위해 Codespaces를 사용하고 있다고 이야기한 적 있습니다. 어딜 가나 항상 노트북을 가지고 다니는 저로선 입대하기 전까지는 코드스페이스를 어디에 사용할 지 감도 잡히지 않았는데, 입대하고 나니 코드스페이스가 정말 유용하다고 느끼고 있습니다. VSCode를 호스팅하는 Codespaces 비주얼 스튜디오 코드(...

이분 탐색

이분 탐색은 탐색 범위가 매우 넓은 값에서 특정 값을 결정할 때 유용하게 사용되는 알고리즘입니다. 탐색 범위가 크지 않다면 이분 탐색의 사용으로 얻는 효용 역시 크지 않지만, 최적화가 필요한 코드에서는 상당히 자주 유용합니다. 백준 온라인 저지에서는 solved.ac 레이팅이 어느 정도 수준을 넘은 문제라면 이분 탐색을 사용하는건 유니온-파인드와 비...

백준 1647 도시 분할 계획 문제 풀이

문제 파악하기 문제는 도로를 제거하여 유지비용을 최소화하는 것이 목표라고 합니다. 제거할 도로를 선택하는 것과 남길 도로를 선택하는 것은 본질적으로 같으므로 제거할 도로를 선택할 대신 남길 도로를 선택하는 것으로 생각할 수 있습니다. 위와 같이 생각하면 단순히 가중치가 제시된 연결선에서 몇 개의 연결을 선택하여 최소한의 가중치 합을 갖는 트리, 즉...

백준 16724 피리 부는 사나이 문제 풀이

문제 파악하기 제시되는 모든 타일은 이동 방향을 지시하고 있습니다. 즉 어떠한 타일에 위치하든 회원들은 계속해서 일정한 경로를 순회하거나, 벽(맵의 바깥)에 막혀 이동이 정지될 것입니다. 이 두 유형은 모두 타일을 그룹화할 수 있음을 의미합니다. 일정한 경로를 순회하도록 하는 타일의 집합도, 특정한 목적지가 있는 타일의 집합도 모두 각각 단일 그룹...

백준 2166 다각형의 면적 문제 풀이

문제 파악하기 입력으로 다각형 꼭짓점의 좌표를 제시합니다. 이 좌표만을 사용하여 다각형의 면적을 구해야합니다. 꼭짓점은 다각형을 구성하는 순서대로 제공하므로, 굳이 순서를 변경하여 문제의 의도와 다른 다각형을 고려할 필요는 없습니다. 문제 풀어보기 문제에서 제시하는 도형은 다각형이기만 무엇이든 가능하므로 제시되는 도형의 유형은 매우 다양합니다....

백준 1202 보석 도둑 문제 풀이

문제 파악하기 모든 가방에 대해, 각 가방이 담을 수 있는 무게 한도 내에서, 가장 가치가 높은 보석을 담도록 하는 문제입니다. 가방이라는 단어가 있지만 한 가방에 한 개의 보석만 담을 수 있으므로 냅색 문제는 아닙니다. 문제 풀어보기 각 가방이 허용하는 무게 범위 내에서 최대의 가치를 지닌 보석을 선택하면 되므로, 모든 값이 잘 정렬되어있다면...

백준 1197 최소 스패닝 트리 문제 풀이

문제 알아보기 가장 기본적인 최소 비용 스패닝 트리 문제입니다. 제시된 그래프에서 최소 스패닝 트리를 구성할 수 있는 간선만 선택하여 간선 가중치의 합을 구합니다. 풀어보기 프림 알고리즘 대표적인 최소 비용 스패닝 트리 알고리즘인 프림 알고리즘을 사용합니다. 간선의 가중치를 기준으로 모든 간선 정보를 정렬. 가중치가 가장 낮은 간선을...

백준 2473 세 용액 문제 풀이

문제 파악하기 기본적으로 두 용액 문제의 변형입니다. 두 용액 문제에서는 용액을 두개만 합성하지만, 이번에는 세개를 합성합니다. 용액 합성의 개수가 늘었지만, 두 용액에서 한개만 더 늘었을 뿐이므로 다소 무식하게 접근할 수 있을 것 같습니다. 풀어보기 두 용액에서 전체 용액에 대해 투 포인터를 사용했다면, 세 용액에서는 용액 하나를 미리 선택하...