일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 피보나치함수
- 테스트 자동화
- 국세청 해외주식 양도세 신고방식
- 한국투자증권 양도세 신고
- 피보나치 예제
- 주식 양도세 신고방법
- 톰캣 실시간 로그
- katalon xpath
- 해외주식 양도세 신고
- oracle group by
- javascript 자동완성
- 홈택스 해외주식 양도세
- katalon 자동화
- katalon 사용법
- CSTS 폭포수 모델
- tomcat log
- recursion example
- Katalon Recorder 사용법
- 한국투자증권 해외주식 양도세
- katalon
- 피보나치함수 예제
- 재귀 예제
- bfs 미로탐색 java
- git 연동
- 재귀함수 예제
- java.sql.SQLSyntaxErrorException
- js 자동완성
- katalon 비교
- 해외증권 양도세 한국투자증권
- 최대공약수 예제
- Today
- Total
엄지월드
순환(Recursion)의 개념과 기본 예제2 본문
Tip! 코딩 테스트 시 기존에 제공되는 함수를 직접 구현하는 문제들이 나올 수 있습니다.
아래 예제들을 확인하여 숙지하고 있으시길 바랍니다.
모든 Recursion은 반복문(iteration)으로 변경 가능합니다.
또한, 그 역도 성립하게 됩니다. 즉, 모든 반복문(iteration)은 Recursion으로 표현 가능합니다.
순환함수는 복잡한 알고리즘을 단순하고 알기쉽게 표현하는 것을 가능하게 합니다.
하지만 함수 호출에 따른 오버해드가 있습니다(매개변수 전달, 엑티베이션 프레임 생성 등)
public class Recursion_2 {
// 1. 문자열의 크기를 구하는 방법.
public static int length(String str){
if(str.equals(""))
return 0;
else
1 + length(str.substring(1));
}
// 2. 문자를 출력하는 방법
public static void printChar(String str){
if(str.equals(""))
return;
else{
System.out.print(str.charAt(0));
printChar(str.substring(1));
}
// 3. 문자를 반대로 출력하는 방법
public static void printCharReverse(String str){
if(str.equals(""))
return;
else{
printChar(str.substring(1));
System.out.print(str.charAt(0);
}
}
// 4. 이진수를 출력하는 방법
public static void printInBinary(int n){
if(n < 2)
System.out.print(n); // n값이 2이하이면 0, 1이므로 계산할 필요가 없기 때문에 바로 출력해줍니다.
else{
printInBinary(n/2); // 가장 낮은 수부터 순차적으로 처리돼야 하기 때문에 print문 보다 위에 있어야 합니다.
System.out.print(n%2);
}
}
// 5. 배열 뒤에 숫자부터 덧셈 방법
public static int sum(int virtualArrSize, int data[]){
if(virtualArrSize<=0)
else
sum(virtualArrSize-1, data) + data[virtualArrSize-1];
}
'알고리즘' 카테고리의 다른 글
[백준] 2178 미로 탐색 (BFS) (0) | 2022.07.27 |
---|---|
기술면접 준비 (0) | 2022.07.08 |
그리디 알고리즘 (0) | 2022.06.28 |
팰린드롬 (0) | 2022.06.17 |
순환(Recursion)의 개념과 기본 예제1 (0) | 2018.09.16 |