성장에 목마른 코린이

TIL 220825 (이것이 취업을 위한 코딩 테스트다 124 - 155) 본문

Today I Learned

TIL 220825 (이것이 취업을 위한 코딩 테스트다 124 - 155)

성장하는 코린이 2022. 8. 25. 22:28
728x90

오늘의 계획

1. 오전 10:00 - 12:00 이력서 2군데 제출하기 / 기업 분석

2. 오후 1:00 - 3:00 개인 운동

3. 이것이 코딩 테스트다 with 파이썬 책 읽고 기록하기

4. 포트폴리오 만들기

탐색(Search): 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정

프로그래밍에서는 그래프, 트리 등의 자료구조 안에서 탐색을 하는 문제를 자주 다룹니다.

대표적인 탐색 알고리즘으로 DFS와 BFS를 꼽을 수 있는데,

이 두 알고리즘의 원리를 제대로 이해해야 코딩 테스트의 탐색 문제 유형을 풀 수 있습니다.

그런데 DFS와 BFS를 제대로 이해하려면 기본 자료구조인 스택과 큐에 대한 이해가 전제되어야합니다.

 

자료구조(Data Structure): 데이터를 표현하고 관리하고 처리하기 위한 구조

그중 스택과 큐는 자료구조의 기초 개념으로 삽입(Push), 삭제(Pop)의 두 핵심 함수로 구성됩니다.

 

실제 스택과 큐를 사용할 때는 삽입과 삭제 외에도 오버플로와 언더플로를 고민해야 합니다.

오버플로(Overflow): 특정한 자료구조가 수용할 수 있는 데이터의 크기를 가득 찬 상태에서 삽입할 때 발생

언더플로(Underflow): 특정한 자료구조에 데이터가 들어 있지 않은 상태에서 삭제 연산을 수행할 때 발생

 

스택(Stack)

박스 쌓기에 비유할 수 있습니다.

흔히 박스는 아래에서부터 위로 차곡차곡 쌓습니다.

그리고 아래의 박스를 치우기 위해서는 위에 있는 박스를 먼저 내려야 합니다.

이러한 구조를 선입후출(First In Last Out) 또는 후입선출(Last In First Out) 구조 라고 합니다.

 

큐(Queue)

대기 줄에 비유할 수 있습니다.

흔히 놀이공원에 입장하기 위해 줄을 설 때, 먼저 온사람이 먼저 들어가게됩니다.

나중에 온 사람일수록 나중에 들어가기 때문에 흔히 공정한 자료구조라고 비유됩니다.

이러한 구조를 선입선출(First In First Out) 구조 라고 합니다.

 

재귀 함수(Recursive Function): 자가 자신을 다시 호출하는 함수

DFS와 BFS를 구현하려면 재귀 함수도 이해하고 있어야 합니다.

오늘의 회고

Comments