일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 피보나치함수 예제
- java.sql.SQLSyntaxErrorException
- 한국투자증권 해외주식 양도세
- 최대공약수 예제
- katalon 사용법
- 재귀 예제
- katalon
- js 자동완성
- 피보나치 예제
- katalon 자동화
- 한국투자증권 양도세 신고
- katalon xpath
- 홈택스 해외주식 양도세
- tomcat log
- javascript 자동완성
- oracle group by
- recursion example
- 주식 양도세 신고방법
- bfs 미로탐색 java
- 테스트 자동화
- 톰캣 실시간 로그
- CSTS 폭포수 모델
- 해외증권 양도세 한국투자증권
- 피보나치함수
- Katalon Recorder 사용법
- 재귀함수 예제
- katalon 비교
- 국세청 해외주식 양도세 신고방식
- 해외주식 양도세 신고
- git 연동
- 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 |