LG CNS Camp 2기/Back-end : 문제풀이, 시행착오

[Java] 별 찍기 - 마름모 (조건문, 반복문 예제)

BuSiSi 2025. 4. 10. 17:53
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int i, j, spaceleft, spaceright, n;
        n = sc.nextInt();
        spaceleft = 0;
        spaceright = 0;

        for(i = 1 ; i <= n ; i ++){
            spaceleft = n - i;
            spaceright = n + i ;
            for(j = 1 ; j <= n * 2 - 1 ; j ++){
                if(spaceleft < j && j < spaceright){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
        for(i = n - 1 ; i >= 1 ; i --){
            spaceleft = n - i;
            spaceright = n + i;
            for(j = n * 2 - 1 ; j >= 1 ; j --){
                if(spaceleft < j && j < spaceright){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
}

 

일단은 그냥 풀어보았는데, 코드 생김새로 보아 좀 더 줄일 수도 있을 것 같다.

마름모 위쪽 아래쪽을 나눠서하지 않고

조건을 주어 위 아래가 자연스럽게 연출되게 만들 수 있을 것 같다.