알고리즘 공부/백준 문제풀이
[백준] 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 자바