Algorithm/Problem

[BOJ]1189 컴백홈(S1, C++)

검은 까마귀 2024. 4. 30. 20:54

📋 개요 

백준 문제를 다시 풀기 시작했다. S1부터 다시 풀고 포스팅 할 예정이다. 이번 문제는 dfs를 활용해서 풀었다. 재귀에서 발생하는 call stack이 동작 원리를 이해하고 푸는것이 필요하

 


🧩 문제

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

 

📝  형식 

📥 입력 📤 출력
첫 줄에 정수 R(1 ≤ R ≤ 5), C(1 ≤ C ≤ 5), K(1 ≤ K ≤ R×C)가 공백으로 구분되어 주어진다. 두 번째부터 R+1번째 줄까지는 R×C 맵의 정보를 나타내는 '.'과 'T'로 구성된 길이가 C인 문자열이 주어진다. 첫 줄에 거리가 K인 가짓수를 출력한다.

💡  예제

🔢 번호 📥 입력 📤 출력
1 3 4 6
....
.T..
....
4

 

🥲  내 코드 및 정답코드


📖  해설 및 느낀점

dfs를 활용해서 푸는 것이다. 정보처리기사를 준비하면서 관련 비슷한 문제가 나왔는데 재귀함수를 실행하면 Call Stack이 생긴다.

그리고 위에서 작성된 return문을 만나면 Stack의 원리에 따라 하나씩 줄어든다.

 

아래는 재귀와 stack이 발생했을때 동작원리이다.

 

 

 

 

 

반응형