cyphen156
백준-재귀 25501 재귀의 귀재 본문
팰린드롬을 기억하는가?
https://cyphen156.tistory.com/205
백준-심화 1 10988 팰린드롬인지 확인하기
팰린드롬인지 확인하기팰린드롬이란 앞에서 부터 읽던지 뒤에서 부터 읽던지 똑같은 단어를 의미한다슈퍼주니어 노래중에 로꾸꺼를 한번 들어보면 확실하게 감이 온다.수박이박수, LeveL과 같
cyphen156.tistory.com
이걸 재귀로 풀면 된다.
팰린드롬이면 1 아니면 0을 출력하면 된다.
공백 이후 함수 호출 횟수를 출력한다.
제약사항
- 0 < T <= 1,000
- Alpha is UpperCase
주의 사항
- 문자열 길이가 홀수인 경우를 처리해야 한다.
CPP풀이
재귀의 귀재_25501.cpp
/**
* 백준 재귀의 귀재_25501
* 팰린드롬을 기억하는가?
* https://cyphen156.tistory.com/205
* 이걸 재귀로 풀면 된다.
* 팰린드롬이면 1 아니면 0을 출력하면 된다.
* 공백 이후 함수 호출 횟수를 출력한다.
*
* 제한사항
*****************************************
* 0 < T <= 1,000 *
* Alpha is UpperCase *
*****************************************
*
*
*
* 주의
* 없다.
*
* 풀이시간 0분
*/
#include <iostream>
#include <string>
using namespace std;
int recursion(const string& str, int left, int right);
int isPalindrome(const string& str);
static int callCount = 0;
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int T;
cin >> T;
for (int i = 0; i < T; ++i)
{
string input;
cin >> input;
callCount = 0;
cout << isPalindrome(input) << ' ' << callCount << '\n';
}
return 0;
}
int recursion(const string& str, int left, int right)
{
callCount++;
if (left >= right)
{
return 1;
}
else if ((str)[left] != (str)[right])
{
return 0;
}
else
{
return recursion(str, left + 1, right - 1);
}
}
int isPalindrome(const string& str)
{
return recursion(str, 0, str.length() - 1);
}
모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리에 있습니다.
Workspace/알고리듬 풀이 at main · cyphen156/Workspace
Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.
github.com
'컴퓨터공학 > 알고리듬 풀이' 카테고리의 다른 글
백준-재귀 4997 칸토어 집합 (0) | 2025.07.14 |
---|---|
백준-재귀 24060 알고리즘 수업 - 병합 정렬 1 (2) | 2025.07.14 |
백준-재귀 2 10870 피보나치 수 5 (1) | 2025.07.11 |
백준-재귀 27433 팩토리얼 2 (0) | 2025.07.11 |
백준-심화 2 20920 영단어 암기는 괴로워 (3) | 2025.07.11 |