(백준) 자바 - 2444번 별찍기 7

업데이트:

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

내 코드

package com.baekjoon;

import java.util.Scanner;

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

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

    for(int i = 2 ; i <= star; i++) {
      for(int j = 1; j < i; j++) {
        System.out.print(" ");
      }
      for(int k = (2*star)-(i*2-1); k > 0; k--) {
        System.out.print("*");
      }
      System.out.println();
    }
    scanner.close();
  }
}

풀이

  • 아주 쉬운문제다. 2442번과 2443번을 그대로 이용해서 가운데 중복되는 한줄만 바꿔주면 된다.
  • 첫 삼각형 줄에서 한줄을 빼던, 두번째 역삼각형 줄에서 한 줄을 빼던 상관 없다. 나는 역삼각형 줄에서 i를 2로 설정했다.
  • for문을 6개나 쓰기 때문에 효율로 따지면 좋은 풀이법은 아닌 것 같다.
  • 하지만 난 아직 이 방법밖에 모르므로 다음에 더 나은 코드가 생각난다면 다른 풀이법으로 풀어보는 것도 좋을 것 같음.

댓글남기기