개발

백준 25501번 재귀의 귀재

백인성(GGM) 2024. 3. 22. 10:38

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

 

25501번: 재귀의 귀재

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

www.acmicpc.net

이 문제는 이미 코드가 던져저 있어서 문제만 제대로 읽는다면 쉽게풀수 있는 문제이다.


출력

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

다.


출력을 간추려 보자면 첫 번째에는  isPalindrome 함수의 반환값 두 번째에서는 isPalindrome 안에서 사용한 recursion 함수의 실행 카운트를 출력하면 된다.

필자 같은 경우 값 참조인 Reference를 이용해 카운트를 계속 recursion 함수가 실행될 때마다 추가해 주면서 했다.

 

#include <iostream>
#include <string.h>

int recursion(const char* s, int l, int r, int& n) {
	++n;
	if (l >= r)  return 1;
	else if (s[l] != s[r]) return 0;
	else  return recursion(s, l + 1, r - 1, n);
}

int isPalindrome(const char* s, int& n) {
	return recursion(s, 0, strlen(s) - 1, n);
}

int main(){
	int input;
	std::cin >> input;
	int result[1001];
	int count[1001];
	for (int i = 0; i < input; ++i)
	{
		char a[1001];
		count[i] = 0;
		std::cin >> a;
		result[i] = isPalindrome(a, count[i]);

	}

	for (int i = 0; i < input; ++i)
	{
		std::cout << result[i] << " " << count[i] << std::endl;
	}
}

 

마무리

문제만 잘 읽어도 반은 가는 것 같다.

반응형

'개발' 카테고리의 다른 글

C++ vector  (0) 2024.03.30
C++ 배열  (0) 2024.03.26
C++ 열거형  (0) 2024.03.19
C++ 문자열  (0) 2024.03.12
백준 15813번 너의 이름은 몇 점이니?  (0) 2024.03.10