Gold(16)
-
BOJ 1670 - 정상 회담 2 (Python3)
보자마자 풀이가 보이는 경우가 있다. 수학적 배경이 있으면 프로그래밍을 하는 데 하등 불편함이 없다는 말은 사실인 듯 하다. 이게 웰노운이 아니라서 다이나믹 프로그래밍으로 문제를 풀었다는 다른 사람의 기여를 보고 놀랐다. 하기사 다이나믹 프로그래밍이 점화식을 프로그램으로 푸는 제법 수월한 방법이기는 하지만... 여기서는 머리를 좀 써 보자. 그럼 본격적으로 풀이에 돌입해 보자. 문제 여러 개의 소국가로 나뉘어져 있었던 A국을 다시 하나의 국가로 합치기 위해 각 소국가의 대표 N명이 원탁에 모였다. 각 대표는 미리 원탁의 자리를 배정받았다. 회의를 시작하기 전에 일단 서로 악수를 하려고 한다. 각 대표는 한 사람과만 악수할수 있고, 모든 악수는 동시에 일어난다. 이때, 어떤 사람의 팔도 교차하지 않았을 때..
2022.11.26 -
BOJ 18291 - 비요뜨의 징검다리 건너기 (Python3)
오랜만에 골드 문제의 풀이와 함께 돌아왔다. 분할 정복이라는 새로운 개념을 배우고 나서 하루에만 열 개 가까이 골드 문제를 처리했다. 한 방법을 새로이 알게 되면 아무래도 그 방법을 이용해 풀 수 있는 문제는 전부 도전해 보는 편이라. 그럼 본격적으로 풀이에 돌입해 보자. 문제 비요뜨는 지금 강 앞에 서 있다. 강 위에는 징검다리가 놓여 있다. 징검다리는 비요뜨가 있는 방향에서부터 반대 방향까지 차례로 1번, 2번, ..., N번의 번호를 가지고 있다. 비요뜨는 1번 징검다리 위에 올라갔다. 그리고 아래 두 가지 규칙을 지키며 징검다리를 건너려고 한다. 1 ≤ X ≤ N 인 임의의 정수 X에 대해, 현재 있는 징검다리의 번호를 i번이라고 할 때 i+X번 징검다리로 뛸 수 있다. N번째 징검다리를 지나쳐선..
2022.11.25 -
BOJ 26008 - 해시 해킹 (Python3)
오늘 시행된 2022 홍익대학교 HI-ARC 프로그래밍 경진대회, 무려 E번 문제다. 아르바이트가 늦게 끝나서 오픈콘은 A번 문제를 폰코딩하는 데에 그쳤지만, 집에 와서 찬찬히 생각해 보니 생각보다 쉬운 문제였다. 11042번 문제와 11758번 문제처럼 방법론을 깨닫자마자 미친 듯이 하락하는 난이도의 문제는 맞다. 그러나 그 방법론을 스스로 깨닫기는 녹록치 않다. 결코. 그럼 본격적으로 풀이에 돌입해 보자. 그리고 그 전에, 수학적으로 조금 익숙하게 보이는 방법으로 원문을 조금 수정하였음을 알린다. 문제 그린닷컴의 운영자 연두는 비밀번호를 평문 그대로 저장하는 과오를 뒤로하고, 이제부터 암호에 해시 함수를 적용해 저장하려고 한다. 연두가 아는 해시 함수라고는 알고리즘 문제 풀이에 많이 사용되는 롤링 해..
2022.11.20 -
BOJ 11758 - CCW (Python3)
방법론만 알고 있으면 난이도가 미친 듯이 하락하는 몇몇 문제가 있다. 그 대표격인 예시로 아마 이 블로그 닫을 때까지 우려먹을 11402번 문제가 있고, 그리고 이 문제가 그러하다. 분명히 교과과정 외의 문제라 골드 V 지정에는 이견이 없지만, 그럼에도 불구하고 구현 난이도는 실버급이라고 생각한다. 자신이 있으면 직접 해 보자. 힌트는 벡터곱이다. 그럼 본격적으로 풀이에 돌입해 보자. 문제 2차원 좌표 평면 위에 있는 점 3개 P₁, P₂, P₃가 주어진다. P₁, P₂, P₃를 순서대로 이은 선분이 어떤 방향을 이루고 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 P₁의 (x₁, y₁), 둘째 줄에 P₂의 (x₂, y₂), 셋째 줄에 P₃의 (x₃, y₃)가 주어진다. (-10,000 ≤ x₁,..
2022.11.18