자바 별 출력하기 중급~고급 난이도로 논리적인 사고방식이 요구되는 문제입니다. 

차후 다이아몬드, 모래시계 별 찍기 문제도 추가할게요!

 

공백을 이해하기 쉽게 하기 위해 a로 치환해서 풀어볼게요~

문제 1번

피라미드 (트리) 출력하기 

 

 

tip :  왼쪽 정렬된 역직각삼각형과 정삼각형을 구분해서 조건 식을 세운 후

정삼각형은 한 칸씩 내려갈수록 1,3,5,7,9 형식으로 증가를 하는데

i = 1일때 *는 1

i  = 2일때 *는 (i * 2) -1

i = 3일때 *는 (i * 2) - 1 

즉 i는 5까지 계속 1씩 증가하는 와중에 *2를 하면 짝수가 되지만 -1을 해줌으로 홀수의 값을 구할 수 있게 된다.

package double_for;

public class Pyramid {

	public static void main(String[] args) {
			for(int i = 1; i <=5; i++) {
				for(int j = 1; j <= 5-i; j ++) {
					System.out.print("a");
				}
				for(int j = 1; j <= (i*2)-1; j++) {
					System.out.print("*");
				}
				System.out.println();
			}

	}

}

풀이 : i 범위 1,2,3,4,5

j 범위 4,3,2,1

i = 1일때 j = 4 *을 찍는 j의 범위  1,3,5,7,9 

 

 

 

 

문제 2번

역피라미드 별 출력하기

 

tip :  빈 공간의 왼쪽정렬 삼각형(1)을 출력하고 역피라미드(2)를 출력

 

package double_for;

public class ReversePyramid {

	public static void main(String[] args) {
		 for (int i = 5; i >= 1; i--) {
	            for (int j = 0; j < 5-i; j++) {
	                System.out.print(" ");
	           }
	            for (int j = 1; j <= (i*2)-1; j++) {
	                      System.out.print("*");
	                }
	            System.out.println();
	       }
	}
}

풀이 : i의 범위는 5,4,3,2,1 

공백 j의 범위는 0,1,2,3,4

* j의 범위는 9,7,5,3,1

복사했습니다!