본문 바로가기

stack4

[탐색] 깊이우선탐색 깊이 우선 탐색이란?그래프 완전 탐색 기법 중 하나이며,그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 진행하는 알고리즘기능특징시간복잡도그래프완전탐색- 재귀함수로 구현- 스택 자료구조 이용O(노드 개수 + Edge 개수) 깊이우선 탐색 주의할점재귀함수를 이용하므로, 스택 오버플로우에 주의해아한다주로 사용되는 문제 유형 : 단절점 찾기, 단절선 찾기, 사이클 찾기, 위상정렬 깊이우선 탐색 핵심 이론한 번 방문한 노드를 다시 방문하면 안됨후입선출(LIFO) 구조를 가진다 (스택 사용)이론을 이용하기 위해서, 스택으로 구현한 것이며 주로 재귀함수를 이용하여 사용한다방문할 스택 + 방문한 곳 저장할 배열탐색 순서 : 1 -> 3 -.. 2024. 11. 15.
[스택] 백준 17298 문제1. 크기가 N인 수열(A) 존재2. 각 원소 A[i]에 관련된 오큰수 NGE[i] 를 구한다3. 오큰수가 존재하지 않는 경우는 , "-1"로 저장( 1 (* 오큰수 : 오른쪽에 큰 수 중 가장 왼쪽에 있는 수 )ex) A [ 3,5,2,7 ] => NGE [ 5,7,7,-1 ]A [ 9,5,4,8 ] => NGE [ -1, 8,8,-1 ] 문제 분석N의 조건이 1,000,000까지 가능하므로 , 일반적인 반복문으로 풀이를 할 경우 시간초과가 난다스택을 이용하여, 풀이 진행스택에 새로 들어오는 수가 top에 존재하는 수보다 크면 그 수 는 오큰수가 된다오큰수 구한 후 수열에서 오큰수가 존재하지 않는 숫자에 -1을 출력ex) A[top] ex) A [ 3,5,2 ,7] // result [ ] // s.. 2024. 10. 30.
[스택] 백준 1874번 문제1. 수열의 개수 N 제공 ( 1 2. n개의 줄에는, 1이상 n이하의 정수가 1개씩 제공 (같은 정수가 2번 나오지는 않음)3. 해당 제공된 n개의 줄의 수열을 오름차순으로 정리 (스택 이용)4. 오름차순 정렬이 불가능할경우, "No"반환입력출력8+4+3+6+8-7-5+2+1- + + - - - -  문제 분석1부터 자연수를 증가시키면서, 입력으로 주어진 숫자와 비교하며 자연수를 스택에 추가하거나 빼는 방식으로 풀이스택 연산 방법1. 현재 수열 값 >= 자연수- 현재 수열값이 큰 경우, 자연수를 증가시키며 스택에 삽입2. 현재 수열값 == 자연수- 스택에서 값을 빼오며, 입력버퍼에 쌓아두고, 삭제진행- 단, 같지 않을경우 스택을 이용해서 오름차순을 만들 수 없으므로 "No" 반환  수도코드probl.. 2024. 10. 29.
[알고리즘] 스택 스택이란?배열에서 발전된 형태의 자료구조스택은 삽입과 삭제 연산이 후입선출(LIFO)구조를 가진다삽입과 삭제가 한쪽 방향에서만 일어난다 스택 관련 용어TOP삽입과 삭제가 이루어지는 위치를 의미PUSHTOP 위치에 새로운 데이터를 삽입하는 연산POPTOP 위치에 현재 있는 데이터를 삭제하고 확인하는 연산PEEKTOP 위치에 현재 있는 데이터를 단순 확인하는 연산 스택 사용 시기백트래킹 문제깊이우선탐색(DFS)재귀함수 2024. 10. 29.