본문 바로가기

코딩 테스트

[백준] (2442번) 별 찍기 - 5

728x90

문제


첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제

별은 가운데를 기준으로 대칭이어야 한다.

 

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

 

- 입력 예시 -

 

5

 

-  출력 예시  -

 

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

정답 코드


<  내 정답 코드  >

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int num = Integer.parseInt(br.readLine());

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

 

<  타인 답변 코드  >

import java.util.Scanner;

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

		for (int i = 1; i <= number; i++) {
			for (int j = number; j > i / 1; j--) {
				System.out.print(" ");
			}
			for (int k = 0; k < 2 * i - 1; k++) {
				System.out.print("*");
			}
			System.out.print("\n");
		}
	}
}

이것을 주의하자!


-  공백과 ' * ' 이 반복되는 횟수를 제한하는 패턴이 이 문제의 관건이다.

 

-  다른 사람의 코드를 보면 알다싶이 패턴이 유일무이하지 않다.