본문 바로가기

Coding Test/Step21. 재귀

(3)
[Java] 3단계. 재귀의 귀재 [25501번] 예제 입력15AAAABBAABABAABCAPALINDROME예제 출력11 21 31 30 20 1문제 접근펠린드롬 문자열이라면 1, 펠린드롬 문자열이 아니라면 0 / 재귀 함수 호출 횟수를 공백으로 한 줄에 출력하는 문제입력첫째줄 : 테스트케이스 개수 T (1둘째줄 ~ : 알파벳 대문자로 구성된 문자열 S출력 isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력문제 해결문제에서 주어진 C언어 코드를 Java 언어로 변경전역 변수 count를 선언하고, for문이 시작될 때 0으로 초기화isPalindrome 함수와 recursion 함수가 종료되면 StringBuilder에 넣고 테스트케이스 개수만큼 반복재귀 풀이 [메모리 : 19,048 KB / ..
[Java] 2단계. 피보나치 수 5 [10870번] https://www.acmicpc.net/problem/10870예제 입력110예제 출력155문제 접근0과 1부터 시작하고 2번째 수부터는 앞의 두 수를 더한 값 입력자연수 n ( 0 출력n번째 피보나치 수문제 해결아래의 표를 보면 n = (n - 1) + (n - 2)의 공식이 생김종료 조건n = 1이면 return 1n = 0이면 return 0피보나치 수 0 ~ 10 = 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 552번째 피보나치 수 0(0번째) + 1(1번째) = 1 (2번째) 3번째 피보나치 수 1(1번째) + 1(2번째) = 2 (3번째) 4번째 피보나치 수 1(2번째) + 2(3번째) = 3 (4번째) 5번째 피보나치 수 2(3번째) + 3(4번째) = 5 (5번째) 6..
[Java] 1단계. 팩토리얼 2 [27433번] https://www.acmicpc.net/problem/27433예제 입력110예제 출력13628800예제 입력20예제 출력21문제 접근재귀에서 가장 중요한 점은 종료하는 조건종료 조건을 제대로 설정하지 않으면 무한 재귀에 빠지며 StackOverFlow가 발생하게 됨입력정수 N (0 출력N!문제 해결종료 조건 : N의 값이 1이하일 경우 1을 return단, N의 값이 '13'이면 62억을 넘어 int의 범위를 벗어나게 됨따라서, long의 값으로 계산해야 함기존 풀이 [메모리 : 14,172 KB / 시간 : 104 ms]public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader..