내가 생각했을때 문제에서 원하는부분
첫째 줄에 테스트 케이스의 개수가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있고, 박스의 크기가 주어진다.
박스의 크기는 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();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.