반응형
문자열의 길이 계산 알고리즘
1
2
3
4
5
6
7
|
public static int lenghth(String str){
if(str.equals(""))
return 0;
else
return 1+lenghth(str.substring(1));
}
|
cs |
가장 앞에 존재하는 문자 하나를 제거하고 1을 더하는 작업을 반복하여 총 문자열의 길이를 구한다.
문자열의 프린트 하는 알고리즘
1
2
3
4
5
6
7
8
|
public static void printChars(String str){
if(str.equals(""))
return 0;
else
System.out.print(str.charAt(0));
printChars(str.substring(1));
}
|
cs |
문자열의 길이를 구하는것과 마찬가지로 문자열의 가장 앞에 존재하는 문자를 프린트하고 substirng을 이용하여 가장 앞의 문자를 제거하는 작업을 전체 문자열이 "" 가 될때 까지 반복한다.
문자열을 뒤집어 프린트하기
1
2
3
4
5
6
7
8
|
public static void printCharsReverse(String str){
if(str.equals(""))
return 0;
else
printCharsReverse(str.substring(1));
System.out.pring(str.charAt(0));
}
|
cs |
문자열 프린트 알고리즘에서 프린트하는 구문과 함수를 호출하는 부분의 순서를 다르게 하면 문자열을 뒤집어서 출력해 주는 함수가 된다.
첫 글자를 제외 한 나머지의 문자열을 뒤집어서 프린트 한고 마지막으로 첫번째 글자를 프린트 한다.
2진수로 변환하여 출력
1
2
3
4
5
6
7
8
|
public void printInBinary(int n){
if(n<2)
System.out.print(n);
else{
printInBinary(n/2);
System.out.print(n%2);
}
}
|
cs |
음이 아닌 정수 n을 이진수로 변환하여 인쇄한다.
n을 2로 나눈 몫을 먼저 2진수로 변환 후 n을 2로 나눈 나머지를 인쇄한다.
배열의 합 구하기
1
2
3
4
5
6
|
public static int sum(int n, int[] data){
if(n<=0)
return 0;
else
return sum(n-1, data) + data[n-1];
}
|
cs |
data[0]에서 data[n-1]까지의 합을 구하여 반환한다.
data[] 배열에 인자에 n-1값을 계속해서 할당하여 (n-1)-1이 되어서 전체 배열의 합을 구한다.
반응형
'알고리즘 > Algorithm' 카테고리의 다른 글
Recursion의 응용 - 미로찾기 (0) | 2021.01.19 |
---|---|
2진검색 알고리즘 (0) | 2021.01.19 |
Recursion(순환)-3 (0) | 2021.01.19 |
선형 시간 알고리즘 (0) | 2020.07.05 |
Recursion(순환)-1 (0) | 2020.06.27 |