Python

Python/Coding Test

[백준] 2178 : 미로 탐색

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 코드 import sys from collections import deque N, M = map(int, sys.stdin.readline().split()) maze = [list(map(int, list(sys.stdin.readline().strip()))) for _ in range(N)] row_rot = [-1, 0, 1, 0] col_rot = [0, 1, 0, -1] dq = deque([[0, 0]]) whil..

Python/Coding Test

[백준] 24479 : 알고리즘 수업 - 깊이 우선 탐색 1 (인접 행렬, 인접 리스트 이용)

https://www.acmicpc.net/problem/24479 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 코드 import sys sys.setrecursionlimit(10**7) # 재귀 최대 깊이 설정 input = sys.stdin.readline # 입력 시간 초과 해결 N, M, R = map(int, input().split()) graph = [[] for _ in range(N+1)] # 빈 인접 리스트 생성 v..

Python/Coding Test

[백준] 1931 : 회의실 배정

회의실 배정 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤..

Python/Coding Test

[백준] 2875 : 대회 or 인턴

대회 or 인턴 https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다. 백준대학교에서는 뛰어난 인재들이 많기 때문에, 많은 팀을 만드는 것이 최선이다..

Python/Coding Test

[알고리즘] 분할정복

1. 분할정복(Divide & Conquer) 알고리즘 문제 해결에 있어서 어떤 문제를 더이상 쪼갤 수 없을 때까지 분할(Divide)한 후 하위 문제들을 해결(Conquer)하고 합치(Combine)면서 문제의 답을 도출하는 알고리즘을 분할정복 알고리즘이라고 한다. 대표적인 분할정복의 예시인 병합정렬(Merge Sort)과 퀵정렬(Quick Sort)을 살펴보자. 2. 병합정렬(Merge Sort) 2-1. 병합정렬 알고리즘 병합정렬 알고리즘 1) 정렬할 리스트를 더 이상 나눌 수 없을 때까지 2개의 부분 리스트로 분할(Divide) 2) 더 이상 나눌 수 없는 부분 리스트를 다시 합치면서 정렬 수행(Conquer, Combine) 2-2. 병합정렬 과정 2-3. 병합정렬의 시간복잡도 병합정렬은 n개의..

Python/Coding Test

[백준] 10815 : 숫자 카드

숫자 카드 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 ..

semperparatus
'Python' 카테고리의 글 목록 (3 Page)