https://www.acmicpc.net/problem/25501
이 문제는 이미 코드가 던져저 있어서 문제만 제대로 읽는다면 쉽게풀수 있는 문제이다.
출력
각 테스트케이스마다, 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 |