[JAVA] 백준 2738번 / BufferedWriter Int(정수)형 출력하기
2024. 3. 28. 10:36ㆍ언어(Language)/JAVA
문제
백준 문제를 풀던 중 문제가 생겼다.
[백준 2738번: 행렬 덧셈]
https://www.acmicpc.net/problem/2738
2738번: 행렬 덧셈
첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같
www.acmicpc.net
[나의 코드]
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
//행렬의 크기 N, M 입력받기
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[][] A = new int[N][M];
int[][] B = new int[N][M];
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for(int j = 0; j < M; j++) {
A[i][j] = Integer.parseInt(st.nextToken());
}
}
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for(int j = 0; j < M; j++) {
B[i][j] = Integer.parseInt(st.nextToken());
}
}
for(int i = 0; i < N; i++) {
for(int j = 0; j < M; j++) {
bw.write((A[i][j] += B[i][j]) + " ");
}
bw.write("\n");
}
bw.flush();
bw.close();
}
}
위의 코드를 실행하면 이상한 문자가 나왔다.
아무래도 정수형을 인식하지 못하는 것 같다.
해결방법
정수형을 String형으로 변환을 해주어 문제를 해결하였다.
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
//행렬의 크기 N, M 입력받기
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[][] A = new int[N][M];
int[][] B = new int[N][M];
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for(int j = 0; j < M; j++) {
A[i][j] = Integer.parseInt(st.nextToken());
}
}
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for(int j = 0; j < M; j++) {
B[i][j] = Integer.parseInt(st.nextToken());
}
}
for(int i = 0; i < N; i++) {
for(int j = 0; j < M; j++) {
bw.write(String.valueOf((A[i][j] += B[i][j])) + " ");
}
bw.write("\n");
}
bw.flush();
bw.close();
}
}
'언어(Language) > JAVA' 카테고리의 다른 글
[JAVA] 오버로딩(Overloading)과 오버라이딩(Overriding) (0) | 2025.01.23 |
---|---|
[JAVA] toCharArray() vs charAt() (0) | 2024.04.11 |
[JAVA] StringTokenizer 여러 번 사용하기(NoSuchElementException 에러) (1) | 2024.02.27 |
[JAVA] StringTokenizer란? (split()과 비교) (0) | 2024.02.21 |
[JAVA] Map & HashMap (1) | 2024.02.20 |