728x90
자바
정말 간단하게 풀었지만 더 좋은 방법이 있었다.
나는 첫 행렬 farr[][] 하나와 두 번째 행렬 sarr[][]를 각각 만들어 저장하고 result[][]까지 만들어서 두 행렬을 더한 배열까지 만든 뒤 result[][]를 출력했다. 이렇게 하면 2차원 배열은 총 3개 반복문은 4개를 사용한 셈.
보완해서
result[][]를 없앤 뒤 farr[][]와 sarr[][]를 더한 것을 바로 출력함. 2차원 배열 2개 반복문 3개 사용
더 보완
아예 겉반복문(행을 도는 반복문)을 *2를 하여서 2차원 배열 하나에 결과값을 저장해버리는 것 !
이렇게 되면 2차원 배열 1개 반복문 2개를 사용하게 됨.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int arr[][] = new int[N][M];
for(int i=0;i<2*N;i++) {
st = new StringTokenizer(br.readLine());
for(int j=0;j<M;j++) {
arr[i%N][j] += Integer.parseInt(st.nextToken());
}
}
for(int i=0;i<N;i++) {
for(int j=0;j<M;j++) {
System.out.print(arr[i][j]);
if(j != M-1) {
System.out.print(" ");
}
}
System.out.println(" ");
}
}
}
사고방식을 유연하게하자. 더 좋은 방법으로 풀 수 있도록 계속해서 노력하자.
아 그리고 마지막 조건문을 넣어주지 않으면 한 행의 마지막 요소가 출력되고 나서 공백이 또 출력되어 출력형식이 잘못되었다는 에러가 난다. !
728x90
'알고리즘 > 백준' 카테고리의 다른 글
10798번 문제 : 세로읽기 (2) | 2023.05.02 |
---|---|
2566번 문제 : 최댓값 (0) | 2023.05.02 |
25206번 문제 : 너의 평점은 (0) | 2023.05.02 |
1316번 문제 : 그룹 단어 체커 (0) | 2023.04.30 |
2941번 문제 : 크로아티아 알파벳 (0) | 2023.04.26 |