본문 바로가기

PS/백준

[BOJ] 백준 25501 재귀의 귀재 (Swift)

반응형

문제

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

 

25501번: 재귀의 귀재

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

www.acmicpc.net

풀이

이 문제는 팰린드롬인지 판별하고, 판별하는데에 recursion 함수가 몇 회 호출하는지 횟수를 출력해주는 문제입니다.

recursion 함수를 확인하면,
팰린드롬인지 아닌지맨 앞 인덱스, 맨 뒤 인덱스의 요소가 같은지 확인하고
다르다면 0을 리턴, 같다면 인덱스를 한 칸씩 옮겨서 다음 인덱스를 확인합니다.
그 후, 전부 같다면 1을 리턴하게 됩니다.

저는 작성된 recursion 함수를 Swift 언어로 옮겨서 작성하였고,
호출 횟수를 확인하기 위해서 callCount라는 파라미터를 하나 추가하였습니다.

그 후, 팰린드롬인지 아닌지 (0 or 1), 판별하는데 걸린 호출 횟수(Int, Int) 자료형으로 return 하도록 구현하였습니다.

굳이.. 재귀함수를 사용하지 않고 while문을 사용하여 풀이할 수도 있습니다.

소스코드

후기

문제를 정확히 이해했다면 재귀함수를 사용하지 않고도 풀 수 있습니다.
recursion 함수의 호출횟수를 구하기 위해 전역변수로 선언하여 호출될 때, count를 증가시키는 방법도 있겠지만
recursion 함수의 파라미터로 관리하는 것이 더 편하고, 순수함수의 성질이라고 생각하여 파라미터로 주었습니다.

반응형