파이썬 자료구조: 딕셔너리
Python에는 dict라는 class가 있습니다. dict는 해싱을 기반으로 데이터들을 관리해주는 자료구조로, (key, value) 쌍 형태로 값을 동시에 저장하는 형태입니다. 해싱을 기반으로 하고 있기 때문에, 삽입, 삭제, 탐색 등 모든 함수의 시간복잡도가 전부 O(1)입니다. 매우 빠른 성능을 보장하지만, 구조 특성상 들어온 값들간의 순서를 나타내주지 못합니다. (이 경우, OrderedDict 클래스를 사용하면 들어온 값들의 순서도 보장할 수 있습니다.) dict에서 키를 바탕으로 값을 가져올 수 있는 방법은 크게 두 가지입니다. dict의 get 메서드를 이용하는 방법과, # Syntax: dictionary.get(keyname, value) d = {1: "apple", 2: "banan..
2022. 5. 22.
[BFS / DFS] 백준 2178번: 미로 탐색 (BOJ 2178) 풀이
import sys from collections import deque input = sys.stdin.readline n, m = map(int, input().split()) board = [] for _ in range(n): row = list(map(int, list(input().split()[0]))) board.append(row) def solution(n, m, board): visited = [[-1]*m for _ in range(n)] dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] q = deque() q.append((0, 0)) visited[0][0] += 1 while q: x, y = q.popleft() for dir in range(4): nx ..
2022. 2. 3.
[BFS / DFS] 백준 1926번: 그림 (BOJ 1926) 풀이
import sys from collections import deque # 입력 받기 input = sys.stdin.readline n, m = map(int, input().split()) board = [] for _ in range(n): board.append(list(map(int, input().split()))) visited = [[0]*m for _ in range(n)] # 방문체크 보드 count = 0 # 그림 갯수 dx = [-1, 0, 1, 0] # dx, dy => 북, 동, 남, 서 dy = [0, 1, 0, -1] area = 0 # n, m = 1, 1 board = [0]인 경우 고려해서, 미리 0 넣어두어야 함 for i in range(n): for j in ra..
2022. 2. 2.