본문 바로가기

Algorithm Problems

(212)
[백준/Python] 1916번: 최소비용 구하기 문제 https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 문제 요약 N개의 도시(정점)와 한 도시에서 출발하여 다른 도시에 도착하는 M개의 버스(간선)가 있다. + 각 도시들은 번호가 존재하고, 버스마다 비용(양수)이 존재한다. 출발 도시에서 도착 도시까지 가는데 드는 최소 비용을 출력한다. 코드 from collections import deque import sys import heapq input = sys...
[백준/Python] 1753번: 최단 경로 문제 https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 문제 요약 간선의 정보를 입력 받아 방향 그래프가 주어진다. + 모든 정점에는 1부터 정점 개수만큼의 번호가 매겨진다. 간선의 개수만큼 세 개의 정수 (u, v, w)가 순서대로 주어진다. + u에서 v로 가는 가중치 w인 간선이 존재한다는 의미이다. 시작점 번호를 입력 받고, 시작점에서 다른 모든 정점으로의 최단 경로를 출력한다. + 서로 다른 두 정점..
[백준/Python] 2589번: 보물섬 문제 https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 문제 요약 각 칸이 육지(L), 바다(W)로 이루어진 2차원 배열 보물 지도가 있다. 보물은 서로 간에 최단 거리로 이동하는데 있어 가장 긴 시간이 걸리는 육지 두 곳에 나뉘어 묻혀 있다. + 최단 거리로 이동하려면 같은 곳을 두 번 이상 지나가거나 멀리 돌아가서는 안된다. 보물이 묻혀 있는 두 곳 간의 최단 거리로 이동하는 시간을 출력한다. + 한 칸을 이동하는 데 1이 걸린다. 코드 from..
[백준/Python] 7562번: 나이트의 이동 문제 https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 문제 요약 l × l 크기의 체스판 위에 나이트 한 개가 있다. 현재 나이트의 위치와 나이트가 이동하려는 위치를 입력 받고, 최소 몇 번만에 이동할 수 있는지를 출력한다. 코드 from collections import deque t = int(input()) # 나이트가 이동할 수 있는 경우의 수 dx = [-2, -1, 1, 2, 2, 1, -1, -2] dy = [1, 2, 2, 1, -..
[백준/Python] 9184번: 신나는 함수 실행 문제 https://www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 문제 요약 if a 20, then w(a, b, c) returns: w(20, 20, 20) if a < b and b < c, then w(a, b, c) returns: w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c) otherwise it returns: w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, ..
[백준/Python] 2470번: 두 용액 문제 https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 문제 요약 N개의 용액 특성 값들을 입력 받고, 이 중 두 개의 서로 다른 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들어내는 두 용액을 출력한다. 용액의 특성값의 범위는 -1000000000 ~ 1000000000이다. 코드 n = int(input()) arr = sorted(list(map(int, input().split()))) left =..