Notice
Recent Posts
Recent Comments
Link
대왕휴지의 개발 공부
[백준 25501번] 재귀의 귀재 (C언어 and 파이썬) : 문제 풀이 없음 본문
https://www.acmicpc.net/problem/25501
25501번: 재귀의 귀재
각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다.
www.acmicpc.net
C언어
#include <stdio.h>
#include <string.h>
int count = 0;
int recursion(const char *s, int l, int r);
int isPalindrome(const char *s);
int main()
{
int loopNum = 0;
char s[1001];
scanf("%d", &loopNum);
for (int i = 0; i < loopNum; i++)
{
scanf("%s", &s);
printf("%d ", isPalindrome(s));
printf("%d\n", count);
}
return 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)
{
count = 0;
return recursion(s, 0, strlen(s) - 1);
}
파이썬
# -*- coding: utf-8 -*-5
# 백준 25501번 재귀의 귀재 문제 - 단계별 풀어보기: 재귀
import sys
def Recursion(s, l, r):
global count
count += 1
if l >= r:
return 1
elif s[l] != s[r]:
return 0
else:
return Recursion(s, l+1, r-1)
def IsPalindrome(s):
count = 0
return Recursion(s, 0, len(s)-1)
loopNum = int(sys.stdin.readline()) # 한개의 정수를 받겠다는 뜻.
# sys의 사용이유 : 시간 초과를 예방하기 위함.
s = ""
str = ""
count = 0
for i in range(loopNum):
s = sys.stdin.readline().rstrip()
count = 0
print(IsPalindrome(s), count)
다좋은데.. 파이썬 함수를 어따 둬야하는지 헷갈린다.
다른 사람들 코드 보니깐.. 맨위에 두는 게 보편적인 것 같긴한데..
근데 또 막 함수를 for문안에 넣는 사람도 있어서 헷갈려....
그리고 전역 변수 사용법도 헷갈렸다.
'프로그래밍 > 백준 문제' 카테고리의 다른 글
[백준 11399] ATM (파이썬, 문제 풀이 없음) (0) | 2023.06.06 |
---|---|
[백준 2720] 세탁소 사장(파이썬, 문제 풀이 없음) (0) | 2023.06.06 |
[백준 10870번] 피보나치 수 5 (C언어 and 파이썬) : 문제 풀이 없음 (0) | 2023.01.29 |
[백준 10872번] 팩토리얼 (C언어 and 파이썬) : 시간 초과 오류 (0) | 2023.01.29 |
[백준 2445번] 별찍기 - 8 (C언어 and 파이썬) : 문제풀이 없음 (0) | 2023.01.29 |