25501-printf 함수

2023. 2. 8. 19:04백준(c , c++)

728x90

printf()를 호출할 때 인자로 isPalindrome(s)이 먼저 넘어가고 모든 처리가 끝난 후 증가된 count값이 넘어갈 거라고 보장할 수 없다. (printf()의 호출은 한 번에 이뤄지기 때문.)

 isPalindrome(s) 출력 부분과 이후 count 출력 부분을 분리해야 한다. 

#define _CRT_SECURE_NO_WARNINGS //경고 제거
#include <stdio.h>
#include <string.h>

int count = 0;

int recursion(const char* s, int l, int r) {
	count++;
	if (l >= r)
		return 1;
	else if (s[l] != s[r])
		return 0;
	else
		return recursion(s, l + 1, r - 1);
}
int isPalindrome(const char* s) {
	return recursion(s, 0, strlen(s) - 1);
}
class word {
public: 
	char str[1001];
};
int main() {
	int T;
	scanf("%d", &T);
	word* str = new word[T];
	for (int i = 0; i < T; i++) {
		scanf("%s", str[i].str);
	}
	for (int i = 0; i < T; i++) {
		printf("%d %d\n", isPalindrome(str[i].str), count);
		count = 0;
	}
	return 0;
}
728x90

'백준(c , c++)' 카테고리의 다른 글

하노이의 탑  (0) 2023.02.21
좌표 압축 기법- 18870번  (0) 2023.02.07
10814번  (0) 2023.02.06
1181번  (0) 2023.02.06
2차원 배열을 정렬할 때 구조체 사용하기  (1) 2023.01.25