티스토리 뷰
알고리즘- 순환(recursion)의 개념과 예제 2
이 내용은 인프런 영리한 프로그래밍을 위한 알고리즘 강좌를 참고한 내용입니다.
| 들어가기에 앞서,
Q) recursion은 수학함수 계산에만 유용한가?
A) 수학함수뿐 아니라 다른 많은 문제들을 recursion으로 해결할 수 있다.
| 문자열의 길이 계산
if the string is empty
return 0;
else
return 1 plus the length of the string that
excludes the first character;
위의 설명은 코드로 설명하면 아래와 같다.
public static int length(String str){
if(str.equals(""))
return 0;
else
return 1+length(str.substring(1));
}
| 문자열의 프린트
위와 비슷하다.
public static void printChars(String str){
if(str.equals(""))
return ;
else{
System.out.print(str.charAt(0));
printChars(str.substring(1));
}
}
반대로 프린트하는 예는 아래와 같다.
public static void printChars(String str){
if(str.equals(""))
return ;
else{
printChars(str.substring(1));
System.out.print(str.charAt(0));
}
}
| 2진수로 변환하여 출력
public static void printInBinary(int n){
if(n<2)
System.out.print(n);
else{
printInBinary(n/2);
System.out.print(n%2);
}
}
public static int sym(int n, int [] data){
if(n<=0)
return 0;
else
return sum(n-1, data) + data[n-1];
}
public void readFrom(int n, int [] data, Scanner in){
if(n==0)
return;
else{
readFrom(n-1,data,in);
data[n-1]=in.nextInt();
}
}
'Computer Engineering > 알고리즘' 카테고리의 다른 글
알고리즘 - 정렬 알고리즘 (0) | 2018.04.14 |
---|---|
알고리즘 - 순환(Recursion)의 개념과 기본 예제 3 (0) | 2018.04.01 |
알고리즘- 순환(recursion)의 개념과 예제 (0) | 2018.03.27 |
알고리즘 - 알고리즘의분석: 시간복잡도 (0) | 2018.02.14 |
댓글