※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 25501번 문제인 재귀의 귀재이다.
문제는 아래 링크를 확인하자.

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

 

25501번: 재귀의 귀재

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

www.acmicpc.net

문제에서 주어진 함수를 그대로 구현해 문제를 해결할 수 있다.

 

위 과정은 굳이 재귀함수를 이용할 필요 없이 반복문으로도 구현 가능하므로 글쓴이는 반복문으로 문제를 해결하였다.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int T; cin >> T;
	while (T--) {
		string s; cin >> s;
		int ispal = 1, cnt = 0;
		for (int l = 0, r = s.length() - 1;; l++, r--) {
			cnt++;
			if (l >= r) break;
			if (s[l] != s[r]) {
				ispal = 0;
				break;
			}
		}

		cout << ispal << ' ' << cnt << '\n';
	}
}
728x90

+ Recent posts