자바로 static 변수를 활용해서 문제를 풀 경우 null과 ''가 output으로 봤을 때 차이가 없는 것에서 문제가 있었다.
https://www.acmicpc.net/problem/2447
char[][] 2차원 배열로 ''을 먼저 채워야 했는데 이 과정을 빼고 문제가 생겼었다.
테스트를 할 때 '' 채우는 것을 빼도 결과는 똑같았기 때문에 원인을 알 수 없었는데 아스키코드를 찾아본 결과 다르더라...
이때 간단히 Arrays.fill(배열,'')을 사용하면 배열의 값들이 ''로 채워지게 된다.
사용 예시코드 ( ctrl + F : 적용코드 )
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
static char[][] table;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int input = Integer.parseInt(br.readLine());
table = new char[input][input];
for(int i = 0 ;i<input;i++) {
Arrays.fill(table[i], ' '); //적용코드
}
solution(input, 0, 0);
for (int i = 0; i < table.length; i++) {
for (int j = 0; j < table.length; j++) {
sb.append(table[i][j]);
}
sb.append("\n");
}
System.out.println(sb);
}
static void solution(int size, int x, int y) {
if (size == 3) {
for (int i = x; i < x + 3; i++) {
for (int j = y; j < y + 3; j++) {
table[i][j] = '*';
}
}
table[x + 1][y + 1] = ' ';
} else {
for (int i = x; i < x + size; i += (size / 3)) {
for (int j = y; j < y + size; j += (size / 3)) {
if (!((i == (x + (size / 3))) && (j == (y + (size / 3))))) {
solution(size / 3, i, j);
}
}
}
}
}
}
'공부-코딩테스트 > Java-코딩테스트-편의기능' 카테고리의 다른 글
자바 리스트 특정 위치에 다른 리스트를 삽입하는 방법 (0) | 2022.08.08 |
---|---|
stream을 사용해서 String배열을 int형배열로 변경하는 법 (0) | 2022.08.07 |
1225. [S/W 문제해결 기본] 7일차 - 암호생성기 (0) | 2022.08.05 |
자바 코딩테스트 데이터 받는 방법 (0) | 2022.08.03 |
자바-배열 정렬하기 기능 (0) | 2022.07.25 |
댓글