티스토리 뷰

PS/etc

chapter1) 피라미드 별 찍기

kingsubin 2020. 7. 7. 17:07
public class Q16 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("출력할 단 수를 입력하세요.");
        int n;

        do {
            System.out.print("단 수 : ");
            n = scanner.nextInt();
        } while (n <= 0);
        spira(n);
    }

    // i번쨰 행 (i-1)*2 + 1, 마지막 n 행에는 (n-1)*2 + 1 개의 *
    static void spira(int n) {
        for (int i = 1; i <= n; i++) { // 행
            for (int j = n-1; j >= i; j--) { // 공백
                System.out.print(" ");
            }
            for (int j = 1; j <= (i-1)*2+1; j++) { // 별
                System.out.print("*");
            }
            for (int j = n-1; j >= i; j--) { // 공백
                System.out.print(" ");
            }
            System.out.println();
        }
    }
}

(1)

 

class StarPira_01_16 {
	static void spira(int n) {
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j <= n - i + 1; j++) 		
				System.out.print(' ');
			for (int j = 1; j <= (i - 1) * 2 + 1; j++)
				System.out.print('*');
			System.out.println();
		}
	}

	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);
		int n;

		System.out.println("피라미드 모양으로 나타냅니다.");

		do {
			System.out.print("단수는 :");
			n = stdIn.nextInt();
		} while (n <= 0);

		spira(n);
	}
}

(2)

 

 

- 나는 공백을 2번 나누어서 반복했는데 답안 코드는 한번에 처리함

- 답안은 앞에 공백만 처리하고 뒤에 별 찍고 그냥 다음 줄로 넘어감

- 지금 다시 생각해도 답안처럼 생각이 안날거같음

- 뒤에 공백을 그냥 다음줄로 넘기는거 괜찮은거같음

 

 

※참조
Do it! 자료구조와 함께 배우는 알고리즘 입문

'PS > etc' 카테고리의 다른 글

chapter2) 배열 역순 정렬  (0) 2020.07.07
chapter1) 숫자 피라미드 찍기  (0) 2020.07.07
chapter1) 직각 이등변 삼각형 별찍기  (0) 2020.07.06
chapter1) 사각형 별찍기  (0) 2020.07.06
chapter1) 덧셈표 작성  (0) 2020.07.06