본문 바로가기

FOSCAR-(Autonomous Driving)/알고리즘 스터디

[2023 알고리즘 스터디] 2조 이현규 3주차 - 백준 25501, 11866, 17478, 17608

반응형

FOSCAR 알고리즘 스터디 3주차 2조 블로깅

 

스택과 큐 자료구조

  1. 그래프 탐색 알고리즘 : DFS/BFS
    • 탐색(Search)이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정
    • 대표적인 그래프 탐색 알고리즘에는 DFS와 BFS가 있음
    • DFS와 BFS는 코딩 테스트에서 매우 자주 등장하는 유형이므로 반드시 숙지해야 함
  2. 스택 자료구조
    • 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조
    • 입구와 출구가 동일한 형태로 스택을 시각화 할 수 있음
  3. 큐 자료구조
    • 먼저 들어온 데이터가 먼저 나가는 형식(선입선출)의 자료구조
    • 큐는 입구와 출구가 모두 뚫려있는 터널과 같은 형태로 시각화 할 수 있음

재귀 함수

  1. 재귀함수
    • 재귀 함수(Recursive Function)란 자기 자신을 다시 호출하는 함수를 의미
    • 단순한 형태의 재귀 함수 예제
      • '재귀 함수를 호출합니다.'라는 문자열을 무한히 출력합니다.
      • 어느 정도 출력하다가 최대 재귀 깊이 초과 메시지가 출력됩니다.
  2. 재귀 함수의 종료 조건
    • 재귀 함수를 문제 풀이에서 사용할 때는 재귀 함수의 종료 조건을 반드시 명시해야 함
    • 종료 조건을 제대로 명시하지 않으면 함수가 무한히 호출될 수 있음
  3. 재구 함수 사용의 유의 사항
    • 재귀 함수를 잘 활용하면 복잡한 알고리즘을 간결하게 작성할 수 있음 (단, 오히려 다른 사람이 이해하기 어려운 형태의 코드가 될 수도 있으므로 신중하게 사용해야 함)
    • 모든 재귀 함수는 반복문을 이용하여 동일한 기능을 구현할 수 있음
    • 재귀 함수가 반복문보다 유리한 경우도 있고 불리한 경우도 있음
    • 컴퓨터가 함수를 연속적으로 호출하면 컴퓨터 메모리 내부의 스택 프레임에 쌓임 (그래서 스택을 사용해야 할 때 구현상 스택 라이브러리 대신에 재귀 함수를 이용하는 경우가 많음)

코드 리뷰

백준 25501번 : 재귀의 귀재

https://www.acmicpc.net/problem/25501

 

25501번: 재귀의 귀재

각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다.

www.acmicpc.net

 

백준 11866번 : 요세푸스 문제 0

https://www.acmicpc.net/problem/11866

 

11866번: 요세푸스 문제 0

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

 

 

 

백준 17478번 : 재귀함수가 뭔가요?

https://www.acmicpc.net/problem/17478

 

17478번: 재귀함수가 뭔가요?

평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대

www.acmicpc.net

 

백준 17608번 : 막대기

https://www.acmicpc.net/problem/17608

 

17608번: 막대기

아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로

www.acmicpc.net

반응형