Java

자바 별찍기 - 마름모 만들기

becky(지은) 2023. 8. 18. 18:08

 

풀이방법


1. 변곡점 기준으로 도형을 자른다

2. 위 삼각형의 너비길이를 기준으로, 아래 삼각형의 너비길이를 구한다.

3. 주의 !  - 두번째 반복문식에서는 i와 관련있는 식을 쓸것, 그렇지 않으면(만약 number 기준) 사각형이 만들어짐
 

import java.util.Scanner;

public class 마름모 {
    public static void main(String[] args) {
       int number = scan.nextInt();// 스캔값이 1일때 그냥 *이 나오는 것을 피하고 싶다면 +1을 해도 좋다
        int number = scan.nextInt();
        int maxWidth = 2 * number -1;

        //1. 위 삼각형

        for (int i = 0; i < number; i++) {
            for (int j = number-1; j > i; j--) { //number =4이면, 공백 3개, 2개, 1개 j= 3~1, 3~2, 3
                System.out.print(" ");
            }
            for (int j = 0; j < 2 * i+ 1 ; j++) { //*가 1개 3개 5개 7개  1+ 2(n-1) = 2n-1 여기서 n은 1부터 이기 때문에, 1+ 2(i+1-1) = 2i +1
                System.out.print("*");
            }
            System.out.println();
        }
        
        //2. 아래 삼각형
        
        for (int i = 0; i < number -1 ; i++) { 
            for (int j = 0; j < i+1 ; j++) {  //공백 1,2,3
                System.out.print(" ");
            }
            for (int k = maxWidth-2; k > 2* i; k--) {  //  최대너비(가로)에서 2 뺀값에서 시작! 5,3,1  k > 0, k > 2, k > 4
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

/*
   *
  ***
 *****
*******
 *****
  ***
   *

 *
 */