자바 알고리즘(백준)

별찍기 (하드버전)

류정근 2024. 4. 25. 21:26

그간 수많은 별찍기 경험으로 생각해낸 모양

다이아몬드 가능하지 않을까? 라고 생각하던중 다른분이 백준에서 다이아몬드 문제를 발견하셨다.

그래서 바로 도전하러 갔다.

사실 별찍기를 하는게 크게 도움이 될까? 생각했는데 이번에 프로젝트 하면서 유동적인 변수를 함수로 만들 때

이중 포문을 이해하고 있었더니 내가 원하는걸 바로 머릿속에 그릴 수 있다는 장점이 있었다.

그래서 별찍기도 한번씩 감을 잃어 갈때 쯤 꼭 해봐야겠단 생각이 들었다.

package practice.backjun.loop;

import java.util.Scanner;

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

        int n = scanner.nextInt();

        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <  (n + 1 - i) ; j++) {
                // j(공백) 이 3 2 1 순으로 죽어야함
                System.out.print("1");
            }

            for (int k = 1;  k <= (i * 2 - 1) ; k++) {
                // k가 1 ,3 ,5 ,7 순으로 반복 되야함
                System.out.print( "*");
            }
            System.out.println();
        }



        for (int i = 1; i < n; i++) {
            for (int j = 0; j < i ; j++) {
                System.out.print("1");
            }
            for (int k = 1;  k < 2 * n -2 * i  ; k++) {
                // 7 5 3 1
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

 

 

그동안 별찍기를 해왔기 때문에 잘 할 수 있을거라 생각했지만 생각 보다 오래걸려버림

이제 구조는 쉽게 만드는데 포문안에 반복문 횟수를 조절하는데 생각보다 시간이걸렸다.

앞으로도 시간날때마다 그리고 원하는 모양이 생각날때마다 직접 만들어 봐야겠다.

'자바 알고리즘(백준)' 카테고리의 다른 글

숫자 N을 B 진법으로 나타내기  (0) 2024.05.01
알고리즘 적응기(1)  (0) 2024.04.02