반응형
문제
https://www.acmicpc.net/problem/25501
풀이
이 문제는 팰린드롬인지 판별하고, 판별하는데에 recursion 함수가 몇 회 호출하는지 횟수를 출력해주는 문제입니다.
recursion 함수를 확인하면,
팰린드롬인지 아닌지를 맨 앞 인덱스, 맨 뒤 인덱스의 요소가 같은지 확인하고
다르다면 0을 리턴, 같다면 인덱스를 한 칸씩 옮겨서 다음 인덱스를 확인합니다.
그 후, 전부 같다면 1을 리턴하게 됩니다.
저는 작성된 recursion 함수를 Swift 언어로 옮겨서 작성하였고,
호출 횟수를 확인하기 위해서 callCount라는 파라미터를 하나 추가하였습니다.
그 후, 팰린드롬인지 아닌지 (0 or 1), 판별하는데 걸린 호출 횟수를 (Int, Int) 자료형으로 return 하도록 구현하였습니다.
굳이.. 재귀함수를 사용하지 않고 while문을 사용하여 풀이할 수도 있습니다.
소스코드
후기
문제를 정확히 이해했다면 재귀함수를 사용하지 않고도 풀 수 있습니다.
recursion 함수의 호출횟수를 구하기 위해 전역변수로 선언하여 호출될 때, count를 증가시키는 방법도 있겠지만
recursion 함수의 파라미터로 관리하는 것이 더 편하고, 순수함수의 성질이라고 생각하여 파라미터로 주었습니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 2447 별찍기 - 10 (Swift) (0) | 2023.03.15 |
---|---|
[BOJ] 백준 24060 알고리즘 수업 - 병합 정렬 1 (Swift) (0) | 2023.03.14 |
[BOJ] 백준 10870 피보나치 수 5 (Swift) (0) | 2023.03.14 |
[BOJ] 백준 10872 팩토리얼 (Swift) (0) | 2023.03.14 |
[BOJ] 백준 11478 서로 다른 부분 문자열의 개수 (Swift) (0) | 2023.03.14 |