Development Palette
[D3]n2805 농작물 수확하기 본문
package com.ssafy.algo.w0804.n2805_농작물수확하기;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws NumberFormatException, IOException {
System.setIn(new FileInputStream("src\\com\\ssafy\\algo\\w0804\\n2805_농작물수확하기\\input (1).txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); 얘도 출력 기본 타입이 string이라 계속 아스키코드나와..
int T;
T = Integer.parseInt(br.readLine());
for (int test_case = 1; test_case <= T; test_case++) {
int n= Integer.parseInt(br.readLine());
char arr [][] = new char[n][n];
for(int i=0;i<n;i++) {
arr[i] = br.readLine().toCharArray();
}
int center = n/2;
int hvst [][] = new int[n][n];
//가운데서 위로
int cnt = 0;
for(int y=center;y>=0;y--) {
for(int x=cnt;x<n-cnt;x++) {
hvst[y][x] = arr[y][x]-'0';
}
cnt +=1;
}
//아래로
int cnt2=1;
for(int y=center+1;y<n;y++) {
for(int x=cnt2;x<n-cnt2;x++) {
hvst[y][x] = arr[y][x]-'0';
}
cnt2 +=1;
}
int sum=0;
for(int i []: hvst) {
for(int j : i) {
sum += j;
}
}
System.out.println("#"+test_case+" "+sum);
}
}
}
로직은 금방 짰는데 char에서 int 변환이 계속 안됐다. 2차원배열이라서 변환이 안되는지 내가 잘못한게 실수한게 있는지 계속 여러방법을 써봤지만.. 원인은 BufferedWriter였다.
BufferedWriter의 기본 출력 타입이 String인 걸 망각하고 단지 빠르다는 이유로 계속 BufferedWriter로 출력을 시도 했었 ㅜㅜㅜ
잊지말자 BufferedWriter의 타입은 String..
bw.append(sum+"\n");
bw.flush();
위의 코드처럼 마지막에 \n으로 처리해주면 자동으로 형변환이 되니까 꼭 해주자!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'Algorithm > SWEA' 카테고리의 다른 글
[D3] 원재의 메모리 복구하기 (0) | 2021.08.04 |
---|---|
[D4] n1210 Ladder1 (0) | 2021.08.04 |
[D2]n2001_파리퇴치 (0) | 2021.08.04 |
[D3]n1208_flatten (0) | 2021.08.04 |
[D2]n1954_달팽이숫자 (0) | 2021.08.04 |
Comments