다라다라V
article thumbnail
[코테 알고리즘] DFS, BFS / 관련 문제

본 글은 "나동빈"님의 [이것이 코딩 테스트다]를 참고하여 작성하였으며, 필자가 직접 문제를 풀며 관련된 문제들을 찾아 정리하였습니다. 시리즈 보기 [코테 알고리즘] 파이썬 기본 / 관련 문제 [코테 알고리즘] 파이썬 주요 라이브러리 / 관련 문제 [코테 알고리즘] 그리디 / 관련 문제 [코테 알고리즘] 구현 / 관련 문제 [코테 알고리즘] DFS, BFS / 관련 문제 [코테 알고리즘] 정렬 / 관련 문제 [코테 알고리즘] 다이나믹 프로그래밍 / 관련 문제 [코테 알고리즘] 최단 경로 / 관련 문제 [코테 알고리즘] 그래프 이론 / 관련 문제 자료 구조 탐색 : 많은 양의 데이터 중 원하는 데이터를 찾는 과정 그래프, 트리 등의 자료구조에서 탐색 DFS, BFS 등을 이용 트리 구현 인접 행렬 2차원 ..

article thumbnail
[백준] 2800번 파이썬 - 스택, 조합

문제요약 (2800. 괄호 제거) 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net 풀이를 위한 부연 설명 괄호의 위치를 스택을 통해 구현한다 각 괄호의 쌍을 뽑아내야하므로 스택을 사용한다. 괄호 쌍을 "포함한다/포함하지 않는다" 이 두 가지 경우에 대한 모든 수를 알아보기 위해 조합을 사용한다. 파이썬 itertools의 combinations를 이용해 경우의 수를 구한다. 여러 가지 같은 경우가 나올 수 있으므로 set()으로 답을 넣는다. 조합에 대한 자세한 개념 설명과 연..

article thumbnail
[백준] 1918번 파이썬 - 스택

문제요약 (1918. 후위표기식) 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 풀이를 위한 부연 설명 연산자의 우선순위를 기준으로 스택에 쌓아야한다. 괄호 처리에 유의해야한다. 스택에 대한 자세한 개념 설명과 연관 문제는 다음 링크를 참고하면 된다. [구버전] [Python] 03. 스택과 큐 📌 스택이란? 📚 스택 알아보기 📃 스택 (stack) 데이터를 임시 저장할 때 사용하는 자료구조 데이터의 입력과 출력 순서는 후입선출(LIFO) 방식 푸시(push) : 스택에 데이터를 넣는 작업 팝(pop) ..

article thumbnail
[백준] 11724번 파이썬 - DFS 풀이

문제 요약 (11724. 연결 요소의 개수) 방향이 없는 그래프(양방향 그래프)의 노드와 간선이 주어졌을 때 연결 요소의 개수를 구하는 것이다. 연결 요소는 연결된 노드들의 뭉텅이라고 생각하면 문제를 풀기 편하다. ex. 1-5-2, 3-4, 6 이렇게 연결되어 있다면 연결 요소의 개수는 3이다. 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어 www.acmicpc.net 풀이를 위한 부연 설명 입력되는 값들을 받아 그래프를 완성한다. 그래프 내에서 연결 요소를 찾아야하므로 ..

article thumbnail
[구버전] [Python] 03. 스택과 큐

📌 스택이란? 📚 스택 알아보기 📃 스택 (stack) 데이터를 임시 저장할 때 사용하는 자료구조 데이터의 입력과 출력 순서는 후입선출(LIFO) 방식 푸시(push) : 스택에 데이터를 넣는 작업 팝(pop) : 스택에서 데이터를 거내는 작업 겹쳐쌓은 접시처럼 데이터를 넣고 꺼내는 작업을 맨위부터 진행 푸시하고 팝하는 윗부분을 꼭대기(top), 아랫 부분을 바닥(bottom) 📚 스택 구현하기 📃 스택을 구현하는데 필요한 데이터 스택 배열 : stk 푸시한 데이터를 저장하는 스택 본체인 list 배열 인덱스가 0인 원소가 스택의 바닥 가장 먼저 푸시하여 데이터를 저장하는 곳은 stk[0] 스택 크기 : capacity 스택의 최대 크기를 저장하는 정수 = len(stk) 스택 포인터 : ptr 스택에 ..