[개념/Python] DFS VS BFS DFS, BFS 이해DFS, BFS의 차이를 드라마로 비유하면 이해가 쉽다 드라마를 볼때 유형은 두 가지로 나뉘는데, 1. 끝나길 기다리고 몰아본다 -> DFS2. 드라마 여러개를 하나씩 본다 -> BFS DFS, BFS : "그래프 탐색 알고리즘"그래프 : 여러 개체들이 연결되어 있는 자료구조탐색 : 특정 개체를 찾기 위한 알고리즘 대표 문제 유형1. 경로탐색 유형(최단거리, 시간)2. 네트워크 유형(연결)3. 조합 유형(모든 조합 만들기) [프로그래머스] 타겟 넘버https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programme.. [개념/Python] dijkstra algorithm, 다익스트라 알고리즘 힙 사용 이유 : 힙 개념 정리하기https://chaenilog.tistory.com/105 import sysimport heapq # 우선순위 큐(최소 힙)를 위한 모듈input = sys.stdin.readline # 빠른 입력을 위한 설정INF = int(1e9) # 무한대를 의미하는 값 (예: 10억)# 다익스트라 알고리즘 함수 정의def dijkstra(start, graph, distance): q = [] # 우선순위 큐 (힙) 초기화 # (거리, 노드번호) heapq.heappush(q, (0, start)) # 시작 노드까지의 거리 = 0을 힙에 삽입 distance[start] = 0 # 시작 노드까지의 최단 거리는 0 .. [개념/Python] heap, 힙 구현 import sysimport heapqinput = sys.stdin.readlinedef heapsort(iterable): h = [] result = [] # 모든 원소를 차례대로 힙에 삽입 for value in iterable: heapq.heappush(h, value) # value를 h에 추가 # 힙에 삽입된 모든 원소를 차례대로 꺼내어 담기 for i in range(len(h)): result.append(heapq.heappop(h)) return resultn = int(input())arr = []for i in range(n): arr.append(int(input()))res = heapsort(arr)fo.. enumerate() 함수 enumerate()란?enumerate()는 반복 가능한(iterable) 객체에서 각 요소의 인덱스와 값을 함께 가져오는 함수입니다.✨ 사용 이유리스트나 deque 같은 자료구조를 순회할 때 인덱스까지 함께 필요할 경우 편리함for i in range(len(리스트)) 대신 enumerate(리스트)를 쓰면 더 깔끔한 코드 가능🔹 enumerate() 기본 사용법fruits = ["사과", "바나나", "체리"] for index, value in enumerate(fruits): print(f"인덱스: {index}, 값: {value}")🔸 실행 결과:인덱스: 0, 값: 사과 인덱스: 1, 값: 바나나 인덱스: 2, 값: 체리👉 enumerate()를 사용하면 자동으로 (인덱스, 값)을 튜플.. ' '.join(...) - 뒤집힌 단어 리스트를 공백을 넣어 하나의 문자열로 결합 ['test', 'a', 'is', 'this']' '.join(...) 결합하면: "test a is this"join 사용 안한 코드입력n = int(input())case = [input(). split(' ') for _ in range (n)]for i in range (n) : top = case[i][::-1] print(f"Case # {i+1}: {top}")출력Case # 1: ['test', 'a', 'is', 'this']Case # 2: ['foobar']Case # 3: ['base', 'you', 'all'] join 사용 코드입력n = int(input())case = [input(). split(' '.. stack 간단 정리 # 빈 스택(리스트 초기화)stack = []stack# 스택에 원소 추가stack = [1, 2, 3]stack.append(4)stack# 스택에서 원소 제거(가장 마지막 원소 제거)stack = [1, 2, 3]top = stack.pop()print(top)stack# 스택의 top 가져오기 (제거 X, 가져오기만)stack = [1, 2, 3]top = stack[-1]top 이전 1 다음