알고리즘 공부/백준 문제풀이

[백준] 2446 : 별 찍기 -9(JAVA) -- 별찍기 모래시계 자바

송테이토 2022. 10. 6. 21:28

별찍기 모래시계 자바

백준 2446 출력형식이 잘못되었습니다

혹시 "출력 형식이 잘못되었습니다" 가 나오나요?

문제 예제 출력을 잘 보시면

공백 문자(' ')가 왼쪽에만 존재하고 오른쪽에는 존재하지 않습니다.

설정 > 보기 설정 > 예제 공백 하이라이트 기능을 통해 확인해보시는 것을 추천합니다.

 

처음에 이렇게 오른쪽에도 삼각형 찍었다가

출력형식이 잘못되었습니다 가 떴다.

 

 

 

 


package Day1006;

import java.util.Scanner;

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

		// 삼각형 위쪽 3개, 아래쪽 3개 출력하면 끝!

		// 위쪽 부분

		for (int i = 0; i < N; i++) {
			// 왼쪽 아래 직각삼각형 공백 만들어주기
			for (int j = 0; j < i; j++) {
				System.out.print(" ");
			}
			// 오른쪽 위 직각 삼각형 별찍기
			for (int j = i; j < N; j++) { // 5 4 3 2 1
				System.out.print("*");
			}
			// 왼쪽 위 직각 삼각형 별찍기
			for (int j = i; j < N - 1; j++) { // 모래시계 절반 나누면 오른쪽 삼각형은 N-1개다
				System.out.print("*");
			}
		
			System.out.println();
		}

		// 아래쪽은 한줄이 빠져있다.(가운데가 * 하나만 있음) 그렇기 때문에 N-1까지 반복해야함
		for (int i = 0; i < N - 1; i++) {

			// 왼쪽 위 직각 삼각형 공백 만들어주기 (3 2 1)
			for (int j = i + 1; j < N - 1; j++) {
				System.out.print(" ");
			}
			// 오른쪽 아래 직각 삼각형 별찍기
			for (int j = 0; j < i + 2; j++) {
				System.out.print("*");
			}
			// 왼쪽 아래 직각 삼각형 별찍기( 1 2 3 4
			for (int j = 0; j < i + 1; j++) {
				System.out.print("*");
			}
	
			System.out.println();
		}

	}

}

백준 2446 자바