알고리즘

https://www.acmicpc.net/problem/4796 4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net import sys from collections import deque input = sys.stdin.readline case = 1 while True: L, P, V = map(int, input().split()) if L == 0 and P == 0 and V == 0: break li = [1 if x < L else 0 for x in range(V)] for i in rang..
https://www.acmicpc.net/problem/2841 2841번: 외계인의 기타 연주 첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째 정수 www.acmicpc.net from collections import deque import sys input = sys.stdin.readline # 입력이 최대 500,001 번 받으므로 이렇게 해주었다. N, P = map(int, input().split()) # 음 개수 N, 프랫 개수 P arr = [[] for _ in range(6)] # 기타줄은 6개 이고, 각 줄의 ..
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net import sys N, M = map(int, input().split()) # N행 M열 입력. board = [ list(input()) for _ in range(N) ] # 보드 완성. res = sys.maxsize # 최솟값을 구해야 하므로 최댓값으로 설정. (최대가 64칸이므로 64로 해도 됨) def search(x, y): # 8*8칸을 돌면서 (0, 0) 좌표가 흰색인 ..
https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net from collections import deque n = int(input()) buildings = list(map(int, input().split())) st = deque() # 스택 이용 res = [] # 각 건물마다 반복문을 돌리면 시간초과가 남 # 각 건물을 한번씩만 돌면서 그 건물이 쏜 신호에 맞는 건물을 스택으로 찾기. for i in range(n): while st: #..
https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net from collections import deque MAX_NUM = 100_001 # 위치값의 범위 0 ~ 100,000 N, K = map(int, input().split()) visited = [False] * MAX_NUM # 방문 여부 기록 sec_list = [0] * MAX_NUM # 각 좌표에 도달할 때의 시간 기록 def bfs(): # bfs..
https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net from collections import deque MAX_NUM = 100_001 # 위치값의 범위 0 ~ 100,000 N, K = map(int, input().split()) visited = [False] * MAX_NUM # 방문 여부 기록 sec_list = [0] * MAX_NUM # 각 좌표에 도달할 때의 시간 기록 def bfs(): # bfs로 한칸..
https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net from collections import deque import sys sys.setrecursionlimit(10 ** 7) # 재귀 호출 제한 올리기 input = sys.stdin.readline # 많은 입력을 받아 시간 초과가 나므로 이렇게 입력 받기. n, m = map(int, input().split()) # 정점과 간..
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net from collections import deque N, M = map(int, input().split()) # N 행 M 열 입력 받기 adj = [list(map(int, input())) for _ in range(N)] # 미로 행렬 저장 visited = [[False] * M for _ in range(N)] # 미로 방문 행렬 저장 q = deque() # bfs용 큐 dx = [0, 0, -1, 1] dy = ..
https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net # 파이썬에서는 재귀 최대 한도의 디폴트가 1000이기 때문에 더 늘려주려면 다음의 코드가 필요 import sys sys.setrecursionlimit(10 ** 7) n, k = map(int, input().split()) MOD = 10007 cache = [[0] * 1001 for _ in range(1001)] # N, K는 1부터 1000까지 이므로 이중 배열 생성 # 이항계수 nCk를 bino(n, k) 라 하면, # bino(n, k) = bino..
yunjae62
'알고리즘' 태그의 글 목록 (3 Page)