https://www.acmicpc.net/problem/25603 25603번: 짱해커 이동식 첫 번째 줄에 정수 $N$, $K$가 주어진다. ($1 \le K < N \le 100\,000$) 두 번째 줄부터 $N$개의 기업 의뢰의 비용이 주어진다. 비용은 $1$ 이상 $10^9$ 이하의 정수이다. www.acmicpc.net 문제 해석 N개의 의뢰가 주어진다. 두번째 줄에 N개의 의뢰의 비용이 주어진다. 의뢰의 순서는 변경 불가능하다. 의뢰는 항상 K개 중 하나는 선택해야 한다. 최대한 난이도가 낮은 의뢰를 선택하면서, 가장 높은 비용의 최솟값을 구하면 되는 문제이다. 코드 from collections import deque input = __import__('sys').stdin.readline..
https://www.acmicpc.net/problem/14222 14222번: 배열과 연산 연산을 적용해서 1부터 N까지의 수가 모두 하나씩 있는 배열을 만들 수 있으면 1을, 없으면 0을 출력한다. www.acmicpc.net 문제 해석 n크기의 배열에 k만큼 수를 더하는 연산이 가능하다. 위의 연산을 통해 1~n까지 모든 수가 1개씩 존재하는 배열을 만들 수 있는지 출력하라. 코드 n, k = map(int, input().split()) arr = sorted(list(map(int, input().split())), reverse = True) check = [0] * (n + 1) for i in range(n): s = 0 temp = arr[i] while arr[i] + s * k 머리..
https://www.acmicpc.net/problem/16938 16938번: 캠프 준비 난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다. www.acmicpc.net 문제 해석 N개의 문제 i번째 문제의 난이도는 Ai 2문제 이상 사용 문제 난이도의 합은 L보다 크거나 같고 R보다 낮거나 같아야함. 가장 어려운문제와 가장 쉬운 문제의 난이도 차이는 X보다 크거나 같아야함. 첫째 줄에 N, L, R, X가 주어진다. 둘째 줄에는 문제의 난이도 A1, A2, ..., AN이 주어진다. → 캠프에 사용할 문제를 고르는 방법의 수 코드 input = __import__('sys').stdin.readline n, l, r, x = map(int, input().split()) a..
https://www.acmicpc.net/problem/11967 11967번: 불켜기 (1, 1)방에 있는 스위치로 (1, 2)방과 (1, 3)방의 불을 켤 수 있다. 그리고 (1, 3)으로 걸어가서 (2, 1)방의 불을 켤 수 있다. (2, 1)방에서는 다시 (2, 2)방의 불을 켤 수 있다. (2, 3)방은 어두워서 갈 수 없으 www.acmicpc.net 문제 해석 입력에서 n * n 크기의 방이 주어지고, m개의 입력이 주어진다. m개의 입력에서는 x, y, a, b가 주어지고, (x, y)방에는 (a, b)방의 불을 켤 수 있는 스위치가 존재한다. 불을 켤 수 있는 방의 최대 개수를 출력하는 문제이다. 코드 from collections import deque # input input = _..
https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net 문제 해석 지훈이가 불을 피해 주어진 맵 밖으로 나가야한다. 맵에는 벽(#), 지훈이의 위치, 불의 위치가 주어진다. 지훈이는 상하좌우로 움직일 수 있다. 불은 상하좌우로 번지고, 벽으로는 번질 수 없다. 지훈이가 탈출하는 가장 빠른 시간을 출력하는 문제이다. 코드 from collections import deque # input input = __import__('sys').st..
https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 문제 해석 물, 돌, 탈출구, 시작위치가 주어진다. 고슴도치는 상하좌우로 이동할 수 있고, 물과 돌이 존재하면 이동할 수 없다. 고슴도치의 이동이 끝난 뒤 물은 상하좌우로 번지게 되는데, 물은 돌, 탈출구로는 번질 수 없다. 추가적으로 고슴도치가 이동할 때 물이 번지게 될 위치로는 이동할 수 없다. 탈출구로 이동하기 위한 최소 시간을 구하는 문제이다. 코드 from collections import deque..
https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 문제 해석 주어진 배열에서 자신보다 큰 가장 좌측의 탑의 위치를 구하는 문제이다. 코드 # input input = __import__('sys').stdin.readline n = int(input()) arr = list(map(int, input().split())) ans = [0] * n stack = [(n - 1, arr[-1])] for k in range(2, n + 1): c ..
https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net 문제 해석 감소하는 수가 되는 n번째 수를 구하는 문제이다. 코드 # from collections import deque input = __import__('sys').stdin.readline # input n = int(input()) # 해당 배열이 감소하는 수 인지 확인 def check(i): global num if len(num) == 1: return 1 if num..
https://www.acmicpc.net/problem/16954 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net 문제 해석 가장 좌측, 가장 아래에 위치한 욱제의 캐릭터가 가장 우측 위쪽으로 이동할 수 있는지 구하는 문제이다. 이때 욱제의 이동 경우는 제자리, 상하좌우 대각선이다. 벽이 존재하며 벽은 욱제가 이동한 뒤에 한칸 씩 떨어진다. ........ ........ ........ ........ ........ ........ ........ ........ #....... ..........
https://www.acmicpc.net/problem/16509 문제 해석 상이 움직여서 왕을 잡는 최소 횟수를 구하는 문제이다. 코드 from collections import deque input = __import__('sys').stdin.readline # 16509 장군 arr = [[0] * 9 for _ in range(10)] visit = [[0] * 9 for _ in range(10)] dx, dy = [-3, -3, -2, -2, 2, 2, 3, 3], [-2, 2, -3, 3, -3, 3, -2, 2] r, c = map(int, input().split()) a, b = map(int, input().split()) arr[a][b] = 1 # 움직일 수 있는지 확인하는 함..