본문 바로가기

알고리즘

(13)
[boj] 14938_서강 그라운드_python 문제링크 https://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 문제설명 문제 입력 첫째 줄에는 지역의 개수 n (1 ≤ n ≤ 100)과 예은이의 수색범위 m (1 ≤ m ≤ 15), 길의 개수 r (1 ≤ r ≤ 100)이 주어진다. 둘째 줄에는 n개의 숫자가 차례대로 각 구역에 있는 아이템의 수 t (1 ≤ t ≤ 30)를 알려준다. 세 번째 줄부터 r+2번째 줄 까지 길 양 끝에 존재하는 지역의 번호 a, b, 그리고 길의 길이 l (1 ≤ l ≤ ..
[boj] 11265_끝나지 않는 파티_python 문제링크 https://www.acmicpc.net/problem/11265 11265번: 끝나지 않는 파티 입력의 첫 번째 줄에는 파티장의 크기 N(5 ≤ N ≤ 500)과 서비스를 요청한 손님의 수 M(1 ≤ M ≤ 10,000) 이 주어진다. 각각의 파티장은 1번부터 N번까지 번호가 붙여져 있다. 다음에는 N개의 줄에 걸 www.acmicpc.net 문제설명 문제 입력 1 : 파티장의 크기 N(5 ≤ N ≤ 500)과 서비스를 요청한 손님의 수 M(1 ≤ M ≤ 10,000) 2 ~ N+1 : 인접 리스트의 거리 정보가 N * N만큼 주어짐. i번째 줄의 j번째 수 T(1 ≤ T ≤ 1,000,000)는 i번 파티장에서 j번 파티장으로 직접적으로 연결된 도로를 통해 이동하는 시간을 의미 N+2~ :..
[boj] 18352_특정 거리의 도시 찾기_python 문제링크 https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 문제설명 문제 입력 1 : 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X 2~M+1 : 두 개의 자연수 A, B가 공백을 기준으로 구분되어 주어진다. (이는 A번 도시에서 B번 도시로 이동하는 단방향 도로가 존재한다는 의미) 출력 X로부터 출발하여 도달할 수 있는 도시 중에서, 최단 거리가..
[boj] 5547_일루미네이션_python 문제링크 https://www.acmicpc.net/problem/5547 5547번: 일루미네이션 첫째 줄에 두 개의 정수 W와 H가 주어진다. (1 ≤ W, H ≤ 100) 다음 H줄에는 상근이네 집의 건물 배치가 주어진다. i+1줄에는 W개의 정수가 공백으로 구분되어 있다. j번째 (1 ≤ j ≤ w) 정수의 좌표는 www.acmicpc.net 문제설명 문제 입력 두 개의 정수 W와 H . (1 ≤ W, H ≤ 100) W*H 상근이네 집의 건물 배치 ( 건물이 있을 때는 1이고, 없을 때는 0이다. 주어지는 입력에는 건물이 적어도 하나 있다. ) 출력 조명을 장식하는 벽면의 길이의 합을 출력 조건 지도의 가장 왼쪽 위에 있는 정육각형의 좌표는 (1,1)이다. (x,y)의 오른쪽에 있는 정육각형의 ..
[boj] 1600_말이 되고픈 원숭이_python 문제링크 https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 문제설명 문제 k번은 체스의 말처럼 움직일 수 있고 나머지는 상하좌우로만 움직일 수 있을 때 원숭이가 최소한의 동작으로 시작 -> 도착지점까지 갈 수 있는 최소 경우 입력 K : 말처럼 움직일 수 있는 수 W H : 가로, 세로 길이 W*H : 0일 때 갈 수 있는 곳, 1일 때 장애물로 인해 갈 수 없는 곳 출력 원숭이의 동작수의 최솟값 ( 도착할 수 없을 시 -1 출력..
[boj] 16918_봄버맨_python 문제링크 https://www.acmicpc.net/problem/16918 16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net 문제설명 입력 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. 출력 총 R개의 줄에 N초가 지난 후의 격자판 상태를 출력한다. 조건 1. 폭탄이 있는 칸은 3초가 지난 후에 폭발한다. 2. 폭탄이 폭발한 이후에는 폭탄이 있던 칸이 파괴되어 빈 칸이 되며, 인접한 네 칸도 함께 파..
[boj] 2228_구간 나누기_python 문제링크 https://www.acmicpc.net/problem/2228 2228번: 구간 나누기 N(1 ≤ N ≤ 100)개의 수로 이루어진 1차원 배열이 있다. 이 배열에서 M(1 ≤ M ≤ ⌈(N/2)⌉)개의 구간을 선택해서, 구간에 속한 수들의 총 합이 최대가 되도록 하려 한다. 단, 다음의 조건들이 만족되 www.acmicpc.net 문제설명 문제 N(1 ≤ N ≤ 100)개의 수로 이루어진 1차원 배열이 있다. 이 배열에서 M(1 ≤ M ≤ ⌈(N/2)⌉)개의 구간을 선택해서, 구간에 속한 수들의 총 합이 최대가 되도록 하려 한다. 단, 다음의 조건들이 만족되어야 한다. 각 구간은 한 개 이상의 연속된 수들로 이루어진다. 서로 다른 두 구간끼리 겹쳐있거나 인접해 있어서는 안 된다. 정확히 M..
[boj] 5557_1학년_python 문제링크 https://www.acmicpc.net/problem/5557 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫자가 줄 지어있는 것을 보기만 하면, 마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자 사이에는 '+' 또는 '-'를 넣어 등식을 만들며 놀 www.acmicpc.net 문제설명 문제 배열에 입력된 수 앞에 +나 -를 붙여나온 결과값이 배열에 처음 입력된 수와 일치하는 경우의 수를 구해야 한다. 배열의 연산 과정에서 음수나 20이 넘는 수는 나올 수 없다. 입력 1. 숫자의 개수 N 2. 0 이상 9 이하의 정수 N개 출력 1. 상근이가 만들 수 있는 올바른 등식의 개수 제한 3 ≤ N ≤ 100 출력 : 2^63 -1 문제풀이 처음 DP 배열을 ..