목록생활 (730)
No Rules Rules
아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net // woohyeon.kim #include #include #include using namespace std; priority_queue eat_lists; int arr[21][21] = { 0 }; int node[21][21] = { 0 }; bool visit[21][21] = { false }; int N; int eat_count; int shark_size; in..
로봇 청소기 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net # woohyeon.kim N, M = map(int, input().split()) x, y, d = map(int, input().split()) arr = [] for _ in range(N): arr.append(list(map(int, input().split()))) # 북 동 남 서 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] def spin():..
이항 계수 2 https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net // woohyeon.kim // https://www.acmicpc.net/problem/11051 #include using namespace std; int main() { ios::sync_with_stdio(false), cin.tie(), cout.tie(); register int N, K, dp[1001][1001]; cin >> N >> K; dp[1][0] = dp[1][1] = 1; for (register int n = 2, k; n
가장 긴 감소하는 부분 수열 https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net // woohyeon.kim // https://www.acmicpc.net/problem/11722 #include #include using namespace std; int main() { register int N, arr[1001], dp[1001]; cin >> N; for (regi..
제곱수의 합 https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net // woohyeon.kim // https://www.acmicpc.net/problem/1699 #include #include using namespace std; int N, dp[100001]; int solution(int n) { if (dp[n] == 0) { dp[n] = static_cast(1e9); for (register ..
연구소 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net DFS 형태의 풀이 # woohyeon.kim N, M = map(int, input().split()) arr = [] for _ in range(N): arr.append(list(map(int, input().split()))) temp = [[0] * M for _ in range(N)] dx = [-1, 1, 0, 0] dy = [0, 0, 1, -1] result = 0 wall_count ..
특정 거리의 도시 찾기 https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net # woohyeon.kim from collections import deque N, M, K, X = map(int, input().split()) arr = [[] for _ in range(N + 1)] for _ in range(M): f, t = map(int, input().split()) ..
치킨 배달 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net # woohyeon.kim from itertools import combinations N, M = map(int, input().split()) arr = [] for _ in range(N): arr.append(list(map(int, input().split()))) houses = [] stores = [] for ix in range(N): for iy..
기둥과 보 설치 https://programmers.co.kr/learn/courses/30/lessons/60061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # woohyeon.kim def possible(answer): for x, y, type in answer: # 기둥인 경우 if type == 0: # 바닥이거나 다른 기둥 위거나 좌측이나 현재 위치에 보가 있다면 괜춘 if y == 0 or [x, y - 1, type] in answer or [x - 1, y, 1] in answer or [x, y, 1] in answer: pass..
뱀 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net from collections import deque def turn_direction(direction, where): if where == 'L': # 현재에서 왼쪽 direction -= 1 if direction == -1: direction = 3 elif where == 'D': # 현재에서 오른쪽 direction += 1 if direction == 4: direction = 0 ret..