코테/백준 문제풀이

https://www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n × n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에 www.acmicpc.net dp[x][y] 를 (x, y)의 좌표에서의 최대 이동횟수라 했을 때 dp[x][y] = 1 + max(dp[x - 1][y], dp[x + 1][y], dp[x][y-1], dp[x][y+1] ) // 1+ max(상하좌우) 라고 할 수 있다, #include #include #include #include using namespace std; int N; int trees[500][..
https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 이 문제는 1 해당 칸에 대해 1번부터 다시 #include #include using namespace std; int N, r, c; int solve(int n, int cnt, int x, int y) { if (n == 1) { return cnt; } pair entry[4] = {{x, y}, {x, y + n / 2}, {x + n / 2, y}, {x + n / 2, y ..
https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래의 좌표는 아래와 같다 (x, y), (x, y + n/2), (x + n/2, y), (x + n/2, y + n/2) #include #include #include using namespace std; int video[64][64]; vector ans; void printVideo(int n, int x, int y) { ans...
https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net #include #include #include using namespace std; int n, c; vector vec; int binarySearch(int start, int end){ while(start = mid){ cnt += 1; cur = i; } } if(cnt < c) { end = mid - 1; }else{ start =..
https://www.acmicpc.net/problem/1939 1939번: 중량제한 첫째 줄에 N, M(1 ≤ M ≤ 100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1 ≤ A, B ≤ N), C(1 ≤ C ≤ 1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이 www.acmicpc.net 크루스칼 알고리즘을 이용해 풀었음 #include #include #include using namespace std; int N, M; int facA, facB; vector edges; int parent[10001]; int ans; int findParent(int x){ if(parent[x] != x){ parent[x] = ..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net from itertools import combinations N, M = map(int, input().split()) mp = [] chickenpos =[] #치킨집 위치 housepos =[] # 집위치 distance ={} #(idx, dis) chickidx=[] for i in range(N): mp.append(list(map(int, input().split..
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net N = int(input()) lst = [] for i in range(N): s,e = map(int, input().split()) diff =e - s lst.append((s,e, diff)) slst = sorted(lst, key = lambda x:(x[1], x[0], diff)) cnt = 0 pstart = slst[0][0] pend = slst[0][1] for i in range(1, N): if slst[i][0] >= pend: # print(slst[i][0],slst[i][1]) ..
N = int(input()) mp = [] dx = [1,-1, 0, 0] dy = [0,0, 1, -1] area = 0 arealst = [] cnt = 0 for i in range(N): mp.append(list(map(int, input()))) def dfs(x, y): global area mp[x][y] = 0 for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0
밤밭황제
'코테/백준 문제풀이' 카테고리의 글 목록