-
[문제해결을 위한 창의적 알고리즘] 별 그리기 (고급, p24)알고리즘 2016. 9. 15. 12:29
이 문제는 비교적 간단한 알고리즘으로 풀이의 설명을 잘 읽어보면 쉽게 이해할 수 있는 문제이다. 다만, 자바의 char array를 출력할 때, 포인터 주소값을 지정하는 것은 어려우므로 array 처음부터 별을 넣도록 코드를 수정하였다.
import java.util.Scanner;
public class DrawStarSol28 {
// 별 문자열 최대값
public static final int MAXN = 10000;
// 별 문자 배열 선언
public static char[] star = new char[MAXN];
public static void f(int n) {
if (n > 0) {
// 재귀적으로 n이 1이 될때까지 호출
f(n-1);
// star 배열을 index 0부터 사용하기 위해 n-1 지정
star[n-1]='*';
System.out.println(star);
}
}
public static void main(String[] args) {
int n;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
// 자원 사용후 즉시 해제
sc.close();
f(n);
return;
}
}
Big O(n) : n은 가장 긴 별 문자 길이GitHub: https://github.com/nevermet/CreativeAlgorithmAdv/blob/master/DrawStarSol28.java
'알고리즘' 카테고리의 다른 글
[문제해결을 위한 창의적 알고리즘] 타일 채우기 (고급, p35) (0) 2016.09.16 [문제해결을 위한 창의적 알고리즘] Combination (고급, p29) (0) 2016.09.16 [문제해결을 위한 창의적 알고리즘] 색상환 (고급, p131) (0) 2016.08.15 [문제해결을 위한 창의적 알고리즘] 허프만 인코딩 (고급, p125) (0) 2016.08.15 [문제해결을 위한 창의적 알고리즘] 숫자 뒤집기 (고급, p18) (0) 2016.08.07