Python 929

[DFS/BFS] 이코테 (파이썬) 경쟁적 전염 풀이

[문제] N x N 크기의 시험관이 있습니다. 시험관은 1 x 1 크기의 칸으로 나누어지며, 특정한 위치에는 바이러스가 존재할 수 있습니다. 바이러스의 종류는 1 ~ K번까지 K가지가 있으며 모든 바이러스는 이 중 하나에 속합니다. 시험관에 존재하는 모든 바이러스는 1초마다 상, 하, 좌, 우의 방향으로 증식하는데, 매초 번호가 낮은 종류의 바이러스부터 먼저 증식합니다. 또한 증식 과정에서 특정한 칸에 이미 어떠한 바이러스가 있다면, 그곳에는 다른 바이러스가 들어갈 수 없습니다. 시험관의 크기와 바이러스의 위치 정보가 주어졌을 때, S초가 지난 후에 (X, Y)에 존재하는 바이러스의 종류를 출력하는 프로그램을 작성하세요. 만약 S초가 지난 후에 해당 위치에 바이러스가 존재하지 않는다면, 0을 출력합니다...

[DFS/BFS] 이코테 (파이썬) 연구소 풀이

[문제] 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었습니다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 합니다. 연구소는 크기가 N x M인 직사각형으로 나타낼 수 있으며, 직사각형은 1 x 1 크기의 정사각형으로 나누어져 있습니다. 연구소는 빈칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지합니다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈칸으로 모두 퍼져나갈 수 있습니다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 합니다. . . . 벽을 3개 세운 뒤, 바이러스가 퍼질 수 없는 곳을 안전 영역이라고 할 때 위의 지도에서 안전 영역의 크기는 27입니다. 연구소의 지도가 주어졌을 때..

[DFS/BFS] 이코테 (파이썬) 특정 거리의 도시 찾기 풀이

[문제] 어떤 나라에는 1 ~ N번까지의 도시와 M개의 단방향 도로가 존재합니다. 모든 도로의 거리는 1입니다. 이때 특정한 도시 X로부터 출발하여 도달할 수 있는 모든 도시 중에서, 최단 거리가 정확히 K인 모든 도시의 번호를 출력하는 프로그램을 작성하세요. 또한 출발 도시 X에서 출발 도시 X로 가는 최단 거리는 항상 0이라고 가정합니다. 예를 들어 N = 4, K = 2, X = 1일 때 다음과 같이 그래프가 구성되어 있다고 합시다. 이때 1번 도시에서 출발하여 도달할 수 있는 도시 중에서, 최단 거리가 2인 도시는 4번 도시뿐입니다. 2번과 3번 도시의 경우, 최단 거리가 1이기 때문에 출력하지 않습니다. [입력 조건] 1. 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시..

백준(Python) 3135번 라디오 풀이

Python으로 구현한 3135번 라디오 문제 풀이입니다. https://www.acmicpc.net/problem/3135 3135번: 라디오 첫 줄엔 정수 A와 B가 주어진다 (1 ≤ A, B < 1000, A ≠ B). 다음 줄엔 정수 N이 주어진다 (1 ≤ N ≤ 5). 다음 N개의 줄엔 미리 지정되어 있는 주파수가 주어진다 (주파수는 1000 보다 작다). www.acmicpc.net a, b = map(int, input().split()) n = int(input()) data = [] for _ in range(n) : data.append(int(input())) target = 1e9 for i in data : if abs(i - b) < abs(target - b) : target ..

백준(Python) 20044번 Project Teams 풀이

Python으로 구현한 20044번 Project Teams 문제 풀이입니다. https://www.acmicpc.net/problem/20044 20044번: Project Teams 입력은 표준입력을 사용한다. 입력의 첫 번째 행에는 팀 수를 나타내는 양의 정수 n(1 ≤ n ≤ 5,000)이 주어진다. 그 다음 행에 학생 si 의 코딩 역량 w(si)를 나타내는 2n개의 양의 정수가 공백으로 www.acmicpc.net n = int(input()) data = list(map(int, input().split())) data.sort() left = 0 right = len(data) - 1 min_value = 1e9 while left < right : temp = data[left] + da..

백준(Python) 11508번 2+1 세일 풀이

Python으로 구현한 11508번 2+1 세일 문제 풀이입니다. https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net n = int(input()) data = [] for _ in range(n) : data.append(int(input())) data.sort(reverse=True) result = 0 count = 1 for i in data : if count % 3 != 0 : result += i count += 1 els..

백준(Python) 1758번 알바생 강호 풀이

Python으로 구현한 1758번 알바생 강호 문제 풀이입니다. https://www.acmicpc.net/problem/1758 1758번: 알바생 강호 첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같 www.acmicpc.net n = int(input()) data = [] for _ in range(n) : data.append(int(input())) data.sort(reverse=True) result = 0 for i in range(n) : value = data[i] - ((i+1)-1) if value > 0 : result..

백준(Python) 2847번 게임을 만든 동준이 풀이

Python으로 구현한 2847번 게임을 만든 동준이 문제 풀이입니다. https://www.acmicpc.net/problem/2847 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net n = int(input()) score = [] result = 0 for _ in range(n) : score.append(int(input())) for i in range(n-1, 0, -1) : if score[i]

백준(Python) 1543번 문서 검색 풀이

Python으로 구현한 1543번 문서 검색 문제 풀이입니다. https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net s = input() target = input() result = 0 num = 0 while num

백준(Python) 13305번 주유소 풀이

Python으로 구현한 13305번 주유소 문제 풀이입니다. https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net n = int(input()) distance = list(map(int, input().split())) price = list(map(int, input().split())) result = 0 m = price[0] for i in range(n - 1) : if price[i] < m : m = price[i] re..