반응형
FOSCAR 알고리즘 스터디 3주차 2조 블로깅
스택과 큐 자료구조
- 그래프 탐색 알고리즘 : DFS/BFS
- 탐색(Search)이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정
- 대표적인 그래프 탐색 알고리즘에는 DFS와 BFS가 있음
- DFS와 BFS는 코딩 테스트에서 매우 자주 등장하는 유형이므로 반드시 숙지해야 함
- 스택 자료구조
- 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조
- 입구와 출구가 동일한 형태로 스택을 시각화 할 수 있음
- 큐 자료구조
- 먼저 들어온 데이터가 먼저 나가는 형식(선입선출)의 자료구조
- 큐는 입구와 출구가 모두 뚫려있는 터널과 같은 형태로 시각화 할 수 있음
재귀 함수
- 재귀함수
- 재귀 함수(Recursive Function)란 자기 자신을 다시 호출하는 함수를 의미
- 단순한 형태의 재귀 함수 예제
- '재귀 함수를 호출합니다.'라는 문자열을 무한히 출력합니다.
- 어느 정도 출력하다가 최대 재귀 깊이 초과 메시지가 출력됩니다.
- 재귀 함수의 종료 조건
- 재귀 함수를 문제 풀이에서 사용할 때는 재귀 함수의 종료 조건을 반드시 명시해야 함
- 종료 조건을 제대로 명시하지 않으면 함수가 무한히 호출될 수 있음
- 재구 함수 사용의 유의 사항
- 재귀 함수를 잘 활용하면 복잡한 알고리즘을 간결하게 작성할 수 있음 (단, 오히려 다른 사람이 이해하기 어려운 형태의 코드가 될 수도 있으므로 신중하게 사용해야 함)
- 모든 재귀 함수는 반복문을 이용하여 동일한 기능을 구현할 수 있음
- 재귀 함수가 반복문보다 유리한 경우도 있고 불리한 경우도 있음
- 컴퓨터가 함수를 연속적으로 호출하면 컴퓨터 메모리 내부의 스택 프레임에 쌓임 (그래서 스택을 사용해야 할 때 구현상 스택 라이브러리 대신에 재귀 함수를 이용하는 경우가 많음)
코드 리뷰
백준 25501번 : 재귀의 귀재
https://www.acmicpc.net/problem/25501
백준 11866번 : 요세푸스 문제 0
https://www.acmicpc.net/problem/11866
백준 17478번 : 재귀함수가 뭔가요?
https://www.acmicpc.net/problem/17478
백준 17608번 : 막대기
https://www.acmicpc.net/problem/17608
반응형
'FOSCAR-(Autonomous Driving) > 알고리즘 스터디' 카테고리의 다른 글
[2023 알고리즘 스터디] 4조 변준형 4주차 - 백준 7562 (1) | 2023.02.19 |
---|---|
[2023 알고리즘 스터디] 1조 김동훈 4주차 - 백준 1388 2606 1260 2644 (1) | 2023.02.17 |
[2023 알고리즘 스터디] 4조 안수빈 3주차 - 백준 10994, 6603, 10799, 13335 (1) | 2023.02.12 |
[2023 알고리즘 스터디] 3조 성동현 3주차 - 백준 2161, 11866, 10994, 6603 (1) | 2023.02.12 |
[2023 알고리즘 스터디] 1조 김예진 3주차 - 백준 25501, 17608, 2161, 17478 (1) | 2023.02.12 |