25501: 재귀의 귀재

네르기·2022년 9월 9일
0

알고리즘

목록 보기
67/76

어떤 문제인가?

문제에 주어진 구현을 잘 따라한 후, 해당 함수가 몇 번 호출되며 어떤 결과를 내놓는지 출력하는 문제.

참고

2022/09/09 기준으로 갑자기 재귀 단계에 추가된 문제다. 다 풀었다고 생각했는데 두 문제가 갑자기 추가되니 조금 불편해진다.

시행착오 횟수

한 번에 해결함.

1차 시도: AC

문제에서는 재귀를 활용했다. 그러나 모든 재귀 문제가 그렇듯, 재귀와 반복문은 서로 바꿔 쓸 수 있다.
문제와 다르게 반복문을 이용해 풀기로 했다.

#include <stdio.h>
#include <string.h>

int main() {
    int T;
    char S[1001];

    scanf("%d", &T);
    for(int i = 0; i < T; i++) {
        scanf("%s", S);
        int c = 0, j = 0, k = strlen(S) - 1, t = 1;
        while(k > j) {
            if(S[j++] != S[k--]) {
                t = 0;
                break;
            }
            c++;
        }
        printf("%d %d\n", t, c+1);
    }
}

다른 분들의 풀이

문제에 답이 있어서 그걸 따라해도 된다. 어차피 풀이는 크게 두 부류로 나뉘며, 그 방법은 크게 다르지 않으므로 생략한다.

profile
프로그래머와 애니메이터가 되고파

0개의 댓글