(계속해서 업데이트중)
알고리즘 문제 풀 때, 초기화 고민에 시간을 많이 쏟는 문제가 있습니다.
어떻게 초기화 했었지? 어떤게 더 효율적일지? 고민을 길게 합니다.
시간을 줄이기 위해 조금씩 정리하고 있습니다.
int[][] arrays = new int[N][]; // N은 원하는 크기
for (int i = 0; i < arrays.length; i++) {
arrays[i] = new int[M];
for (int j = 0; j < arrays[i].length; j++) {
arrays[i][j] = 초기값;
}
}
List<Integer>[] list = new ArrayList[N];
for (int i = 0; i < list.length; i++) {
list[i] = new ArrayList<>();
}

N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
// 시작을 0,0이 아닌 1,1부터 시작
map = new int[N+1][M+1];
for(int i=1; i<=N; i++){
// 한 줄을 입력 받습니다.
int[] array = Arrays.stream(r.readLine().split("")).mapToInt(Integer::parseInt).toArray();
for(int j=1; j<=M; j++){
map[i][j] = array[j-1];
}
}
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
// 시작을 0,0으로 시작
map = new int[N][M];
for(int i=0; i<N; i++){
map[i] = Arrays.stream(r.readLine().split("")).mapToInt(Integer::parseInt).toArray();
}