본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1366 : 숫자 피라미드 2

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1366 사각형 출력하기 4 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

사각형의 크기 n이 입력된다.(n은 홀수)

출력

대각선과 테두리가 그려진 사각형에 가로, 세로 중심에 선을 추가한 사각형을 출력한다.

예시

  • 입력 : 17
  • 출력 :

Solution (풀이)

  • 풀이 : 메모리 11808, 시간 72
public class Answer {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int n = Integer.parseInt(br.readLine());

        // 첫줄은 무조건 별로 가득 채워야 한다.
        for (int i=0; i<n; i++) sb.append("*");
        sb.append("\n"); // 줄바꿈

        // 첫줄과 마지막줄은 별로 무조건 가득 채움으로 i=2부터 시작
        for (int i=2; i<n; i++) {
            sb.append("*"); // 첫번째 자리는 무조건 별

            // 첫자리, 마지막자리 별을 찍었기 때문에 2부터 시작
            for (int j=2; j<n; j++) {
                if (i==(n+1)/2) sb.append("*"); // 중간줄일때에는 별만 찍어라.
                else {
                    // 줄과 자리수, 마지막에서 순번이 같을때 *찍기 & 중간 칸일때 *찍기
                    if(i==j || i==n-j+1 || j==(n+1)/2) sb.append("*");
                    else sb.append(" ");
                }
            }

            sb.append("*\n"); // 마지막 자리는 무조건 별 & 줄바꿈

        }

        // 마지막줄은 무조건 별로 가득 채워야 한다.
        for (int i=0; i<n; i++) sb.append("*");

        System.out.print(sb);
    }
}

Ranking(순위)

반응형