알고리즘
-
자료구조: Linked List로 Stack 구현하기 (feat. c++)알고리즘/자료구조 2021. 4. 16. 00:33
Characteristic: - MyStack class is stack class made Linked List Operations: - push - pop - top - isEmpty #include #include using namespace std; template class MyStack { public: MyStack(); void push(StackeElementType item); StackeElementType pop(); StackeElementType top(); bool isEmpty(); private: struct Node; typedef Node* Link; struct Node { StackeElementType data; Link next; }; Link head; }; t..
-
자료구조: Array로 Stack 구현하기 (feat. c++)알고리즘/자료구조 2021. 4. 15. 17:25
Characteristic: - MyStack class is stack class made by array operations: - push - pop - top - isEmpty - isFull #include #include using namespace std; const int maxStackSize = 1000; template class MyStack { public: MyStack(); void push(StackElementType item); StackElementType pop(); StackElementType top(); bool isEmpty(); bool isFull(); private: StackElementType stackArray[maxStackSize]; int topI..
-
알고리즘: 백준 15686번 치킨 배달 (feat. python)알고리즘/백준(BaekJoon) 2021. 1. 17. 01:23
15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net import sys from collections import deque from itertools import combinations import copy read = sys.stdin.readline N, M = map(int, read().split()) country = [] chick = [] for i in range(N): country.append(list(map(int, read().split()))) for j in rang..
-
알고리즘: 백준 2211번 네트워크 복구 (feat.python)알고리즘/백준(BaekJoon) 2021. 1. 15. 15:29
2211번: 네트워크 복구 첫째 줄에 두 정수 N, M이 주어진다. 다음 M개의 줄에는 회선의 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 컴퓨터와 B번 컴퓨터가 통신 시간이 C (1 ≤ C ≤ 10)인 회선으로 연결되어 있다 www.acmicpc.net import sys import heapq read = sys.stdin.readline INF = sys.maxsize N, M = map(int, read().split()) net = {i: [] for i in range(1, N+1)} for _ in range(M): A, B, C = map(int, read().split()) net[A].append([C, B]) net[B].append([C, A]) times =[[0..
-
알고리즘: 백준 10282번 해킹 (feat. python)알고리즘/백준(BaekJoon) 2021. 1. 15. 14:18
10282번: 해킹 최흉최악의 해커 yum3이 네트워크 시설의 한 컴퓨터를 해킹했다! 이제 서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면 www.acmicpc.net import sys import heapq INF = sys.maxsize read = sys.stdin.readline case = int(read()) def sol(): n, d, c = map(int, read().split()) depen = {i:[] for i in range(1, n+1)} for _ in range(d): a, b, s = map(int, read().split()) depen[b].append([s, a]) visit = [] hq ..
-
알고리즘: 백준 11779번 최소비용 구하기2 (feat.python)알고리즘/백준(BaekJoon) 2021. 1. 15. 13:29
11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net import sys import heapq read = sys.stdin.readline n = int(read()) m = int(read()) graph = {i:[] for i in range(1, n+1)} for _ in range(m): s, e, w = map(int, read().split()) graph[s].append([w, e]) start, end = map(int, read().split()) INF = s..
-
알고리즘: 백준 2665번 미로만들기 (feat.python)알고리즘/백준(BaekJoon) 2021. 1. 13. 13:13
2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1≤n≤50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net import sys import copy import heapq read = sys.stdin.readline n = int(read()) maze = [] for i in range(n): maze.append(list(map(int, read().strip()))) visit = copy.deepcopy(maze) def bfs(): hq = [] heapq.heappush(hq, [0,0,0]) dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] ..
-
알고리즘: 백준 4485번 녹색 옷 입은 애가 젤다지? (feat. python)알고리즘/백준(BaekJoon) 2021. 1. 12. 20:02
4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net import sys import heapq read = sys.stdin.readline def problem(): N = int(read()) if N == 0: return -1 cave = [list(map(int, read().split()))for _ in range(N)] dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] visit = [[False for _ in range(N)] for _ in range(N)]..