본문 바로가기

(385)
[Python] 4913번 페르마의 크리스마스 정리 https://www.acmicpc.net/problem/4913 4913번: 페르마의 크리스마스 정리 각 테스트 케이스에 대해서, 한 줄에 L U x y를 출력한다. 여기서 L과 U는 입력으로 주어진 값이고, x는 구간 [L,U]에 포함된 소수의 개수, y는 [L,U]에 포함된 소수중 제곱수의 합으로 나타낼 수 있는 www.acmicpc.net 22/11/13 분명 태그 하나(에라토스테네스의 체)가 보이는 문제여서 접근을 했건만, 2번의 시간초과와 여러 번의 의문의 틀렸습니다를 받고 당황했던 문제이다. 요구하는 선행지식은 누적 합의 개념과 에라토스테네스의 체이다. 문제 접근 방식: 먼저, 구간 내의 소수를 판정해야되고, $L$과 $U$의 범위가 최대 $1,000,000$까지 이므로, 에라토스테네스의 체..
[Python] 1707번 이분 그래프 https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 22/11/14 전형적인 BFS, DFS응용 문제로, 이분 그래프에 대한 정의를 잘 알고 있기만 한다면 쉽게 풀 수 있는 문제이다. 이 문제에서는 BFS로 접근했으며, DFS로는 조금 귀찮을 것 같아 DFS로는 접근하지 않았다. 의외로 조금씩 틀렸었던 문제로, 문제를 잘 읽는 습관을 기르도록 하자. 문제 접근 방식: 처음에는 이분 그래프의 정의를 헷갈려서 틀렸습니다를 받았다. 어떤 식으로 이해했었..
[Python] 21344번 Hot Spring https://www.acmicpc.net/problem/21344 21344번: Hot Springs Output a rearrangement of the sequence satisfying the given requirement. If no solution exists, output "impossible". If there are multiple valid solutions, you may output any one of them. www.acmicpc.net 22/11/15 실랜디를 하다가 만난 문제로, 내가 전형적으로 약한 알고리즘이어서 문제를 접근하기가 조금 힘들었었다. 문제 접근 방식: 외국어 문제이기 때문에, 번역을 하자면 다음과 같다. 아이슬란드는 나라 전체의 열과 전력의 대부분을 공급해주..
[Python] 7787번 빨간 칩, 초록 칩 https://www.acmicpc.net/problem/7787 7787번: 빨간 칩, 초록 칩 이 게임은 빨간 칩 r개와 초록 칩 g개를 책상 위에 놓고 진행한다. 두 플레이어 A와 B는 턴을 번갈아가면서 게임을 하며, A가 먼저 시작한다. 게임의 규칙은 간단하다. 자신의 턴이 돌아오면 두 색 www.acmicpc.net 22/11/10 스프라그-그런디 정리를 이용해서 풀 수 있는 문제로, 규칙을 찾아서 쉽게 풀 수 있다. 근데 증명하는건 굉장히 어렵다... 증명하는 과정을 한번 살펴보자. 문제 접근 방식: 그런디 수를 구하는 방법으로 그런디 수를 계속 재귀적으로 20개까지 구하다 보면 아래와 같은 규칙을 발견할 수 있다. (20개까지의 그런디 수는 알아서 구해보자) 만약 칩 개수를 2로 나누었을 때..
[Python] 16939번 2×2×2 큐브 https://www.acmicpc.net/problem/16939 16939번: 2×2×2 큐브 첫째 줄에 2×2×2 루빅스 큐브 각 면의 각 칸 색상이 주어진다. 색상은 1부터 6까지의 자연수로 나타내며, 각 자연수는 총 4번 등장한다. i번째 수가 의미하는 칸은 아래와 같다. www.acmicpc.net 22/11/10 전형적인 구현 문제로, 큐브의 움직임을 따라가며 차근차근 구현하면 맞을 수 있는 문제이다. 문제 접근 방식: 아래 그림을 보자. 2*2*2 큐브에서 나올 수 있는 모든 회전들을 기호로 표현한 것으로, 총 12가지가 있다. 나는 5678이 새겨진 면을 맨 윗면으로 고정시켜놓고, 저렇게 한 번 회전시키는 것을 각각의 함수로 구현하였다. 다시 말해, 총 12가지의 함수를 구현한 것이다. ..
[Python] 11973번 Angry Cows (Silver) https://www.acmicpc.net/problem/11973 11973번: Angry Cows (Silver) The first line of input contains \(N\) (\(1 \leq N \leq 50,000\)) and \(K\) (\(1 \leq K \leq 10\)). The remaining \(N\) lines all contain integers \(x_1 \ldots x_N\) (each in the range \(0 \ldots 1,000,000,000\)). www.acmicpc.net 22/11/05 전형적인 이분 탐색 문제로, 외국어 문제여서 문제를 해석하는 것이 어려운 문제이다. 문제 접근 방식: 먼저 외국어 문제이기에 문제 요약을 하자면 다음과 같다. 건초더미..
[Python] 7869번 두 원 https://www.acmicpc.net/problem/7869 7869번: 두 원 첫째 줄에 두 원의 중심과 반지름 x1, y1, r1, x2, y2, r2가 주어진다. 실수는 최대 소수점 둘째자리까지 주어진다. www.acmicpc.net 22/11/09 전형적인 수학, 기하학 문제로, 제2코사인 법칙을 사용하여 문제를 해결할 수 있다. 문제 접근 방식: 이 문제를 풀기 위해서는 먼저 제2코사인 법칙을 알아야 한다. 제2코사인 법칙이란, 어떤 삼각형의 세 변과 그 대각 사이에 성립되는 관계로, 위와 같은 식을 따른다. 따라서, 내가 예를 들어, 각 B를 구하고 싶으면 저 식 중 2번째 식을 변형하여 아래와 같이 구할 수 있다. 이 식을 이용할 것이다. 먼저, 원의 위치 관계에 따라 3가지 경우로 나..
[Python] 25921번 건너 아는 사이 https://www.acmicpc.net/problem/25921 25921번: 건너 아는 사이 첫째 줄에 비용의 최솟값을 출력한다. www.acmicpc.net 22/11/06 대회 도중에는 거의 접근을 가까이했지만 풀지 못했으나, 이후 살짝 고쳐서 맞았습니다를 받은 문제이다. 그래프 문제처럼 보이는 소수 판정 문제로, 참 기발하다고 생각했다. 문제 접근 방식: 음식의 가격의 합을 작게 하려면 최대한 음식을 먹는 횟수가 적어야 할 것이다. 다시 말해, 밥을 먹는 사람들의 번호를 노드, 서로 밥을 먹는 사람들끼리 잇는 것을 간선이라고 한다면, 우리는 이 간선의 개수를 최소한으로 만들어야 한다. 쉽게 이야기하자면 서로 만나서 밥 먹는 횟수가 적어야 된다. 따라서, 이 그래프에서는 사이클이 없어야 된다. ..