백준 J박스

KIMYEONGJUN·2025년 4월 10일
0
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫째 줄에 테스트 케이스의 개수가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있고, 박스의 크기가 주어진다.
박스의 크기는 10보다 작거나 같다.

각 테스트 케이스에 대해서, 입력으로 주어지는 크기의 J박스를 출력한다.
박스와 박스 사이에는 빈 줄을 하나 출력한다.

내가 이 문제를 보고 생각해본 부분

입력 처리:
BufferedReader를 사용하여 표준 입력해 받는다.
첫 번째 줄에서 테스트 케이스의 수 T를 입력받는다.
Integer.parseInt(br.readLine())을 통해 문자열을 정수로 변환해준다.
J박스 출력:
for 루프를 사용하여 테스트 케이스를 반복해준다.
각 테스트 케이스에 대해, 두 번째 줄에서 박스의 크기 n을 입력받는다.
이중 루프를 통해 n x n 크기의 박스를 생성해준다.
첫 번째(j == 1)와 마지막 줄(j == n)은 #으로 채운다.
중간 줄에서는 첫 번째와 마지막 열은 #, 나머지 부분은 J로 채운다.
출력 형식:
각 박스의 출력이 끝난 후, System.out.println()을 호출하여 줄 바꿔준다.
이후 각 박스가 끝날 때마다 빈 줄을 추가하여 출력 형식을 맞춘다.
마지막 박스 후에는 빈 줄이 추가되지 않도록 설정해준다.

코드로 구현

package baekjoon.baekjoon_27;

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

// 백준 5354번 문제
public class Main987 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // 테스트 케이스 수 입력받기
        int T = Integer.parseInt(br.readLine());

        // 각 테스트 케이스에 대해 처리
        for (int i = 0; i < T; i++) {
            int n = Integer.parseInt(br.readLine());

            // n x n 박스 출력
            for (int j = 1; j <= n; j++) {
                for (int k = 1; k <= n; k++) {
                    // 첫 번째 또는 마지막 줄일 경우 #
                    if (j == 1 || j == n) {
                        System.out.print("#");
                    } else {
                        // 중간 줄의 첫 번째와 마지막 열은 #
                        if (k == 1 || k == n) {
                            System.out.print("#");
                        } else {
                            // 중간 부분은 J 출력
                            System.out.print("J");
                        }
                    }
                }
                // 한 줄 출력 후 줄 바꿈
                System.out.println();
            }
            // 각 박스 사이에 빈 줄 추가, 마지막 박스 후에는 빈 줄 추가 안 함
            System.out.println();
        }

        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글