Gold/Gold V(6)
-
BOJ 9764 - 서로 다른 자연수의 합 (Python3)
사실 이번 게시글은 자기성찰성이 깊은 게시글이다. 수학 원툴에서 쓸 수 있는 도구를 다변화시킬 필요가 있어서 우선 dp를 연습하기로 하고 골드 범위 내에서 랜덤으로 뽑기를 반복했는데, dp 문제임을 알고 있어도 dp로 못 접근한 문제가 있기 때문이다. 이게 그렇고, 다른 것도 하나 있는데... 하여튼 생각해보다가 안 되니 아득하게 높은 레벨의 풀이를 정말 억지로 끌고 와서 겨우겨우 풀어냈다. 닭 잡는 데 핵폭탄을 떨어트린 느낌이라고 해야 하나... 그럼 본격적으로 풀이에 돌입해 보자. 문제 양의 정수 \(N\) \((1\le N\le 2000)\)을 서로 다른 자연수의 합으로 나타내는 방법은 여러 가지가 있다. 예를 들어, \(N=5\)인 경우 \(N=5=2+3=1+4\)로 총 3가지 방법이 있다. \(..
2023.10.31 -
BOJ 27087 - 직육면체 (Python3)
문제를 풀고 기여를 할 때마다 생각하는 것인데, 수학적으로 자명해 보이는 것이 실제로 그다지 자명하지 않은 경우 기여 편차는 하늘과 땅으로 갈린다. 내 눈에는 증명이 바로 보이지만 남의 눈에는 증명이 아예 안 보이는 경우가 많나 보다. 이 문제는 어제 개최된 SciOI 2022의 D번 문제이다. 개인적으로는 총 10개의 문제 중 가장 쉬웠다. 발상 난이도가 골드라는 건 절대 동의할 수 없다. 그럼 본격적으로 풀이에 돌입해 보자. 문제 A×B×C 모양의 직육면체를 1×p×p 모양의 직육면체로 채울 수 있는지 판별하시오. 단, p는 소수이다. 직육면체의 방향은 중요하지 않다. 즉, 직육면체를 돌려서 p×1×p, p×p×1로 채우는 것도 가능하다. 입력 첫 줄에 테스트 케이스의 수 T가 주어진다. 이후 한 줄..
2023.01.02 -
BOJ 2447 - 별 찍기 - 10 (Python3)
아직 시험이 절반밖에 지나지 않았다. 21일에 마지막 시험이 종료된다. 복수전공 예정인 과목인데다가 교수님에게 빌어넣어서 들어간 과목이다. 망칠 수는 없다. 빌어 넣은 사람에서 빌어먹은 사람이 되기 때문에... 그런고로 적당히 어려운 2447번 풀이를 올리고, 22일부터 왕성한 활동을 하도록 하겠다. 이번 문제는 별 찍기 문제. 무려 골드씩이나 되는 문제다! 그럼 본격적으로 풀이에 돌입해 보자. 문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로..
2022.12.17 -
BOJ 15717 - 떡파이어 (Python3)
이 문제보다 더 어렵고 구현하기도 빡센 돌아온 떡파이어라는 문제가 있다. 접근법은 영 다르지만 문제의 백스토리라거나 하는 것은 거의 같으니... 이 문제의 경우 18291번 문제와 아주 유사한 풀이방법을 가지고 있다. 어떻게 답이 얻어지는지만 알면 말이다. 그럼 본격적으로 풀이에 돌입해 보자. 문제 떡파이어의 불로장생의 비밀은 바로 떡국이다. 떡파이어는 떡국을 먹은 그릇의 개수만큼 나이를 먹는다. 그들은 매일 떡국을 먹는데, 떡국을 먹는대로 바로 소화가 가능하기 때문에 하루에 얼마든지 원하는만큼 떡국을 먹을 수 있다. 그러나 전에 떡국을 얼마나 먹었든지, 그들은 기구하게도 떡국을 하루라도 먹지 않으면 생을 마감하게 된다. 어느 날, 디디는 어떤 떡파이어가 N세로 생을 마감하기까지 어떤 생을 살아왔는지 알..
2022.12.04 -
BOJ 18291 - 비요뜨의 징검다리 건너기 (Python3)
오랜만에 골드 문제의 풀이와 함께 돌아왔다. 분할 정복이라는 새로운 개념을 배우고 나서 하루에만 열 개 가까이 골드 문제를 처리했다. 한 방법을 새로이 알게 되면 아무래도 그 방법을 이용해 풀 수 있는 문제는 전부 도전해 보는 편이라. 그럼 본격적으로 풀이에 돌입해 보자. 문제 비요뜨는 지금 강 앞에 서 있다. 강 위에는 징검다리가 놓여 있다. 징검다리는 비요뜨가 있는 방향에서부터 반대 방향까지 차례로 1번, 2번, ..., N번의 번호를 가지고 있다. 비요뜨는 1번 징검다리 위에 올라갔다. 그리고 아래 두 가지 규칙을 지키며 징검다리를 건너려고 한다. 1 ≤ X ≤ N 인 임의의 정수 X에 대해, 현재 있는 징검다리의 번호를 i번이라고 할 때 i+X번 징검다리로 뛸 수 있다. N번째 징검다리를 지나쳐선..
2022.11.25 -
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