Development Palette

[D3]n2805 농작물 수확하기 본문

Algorithm/SWEA

[D3]n2805 농작물 수확하기

징주 2021. 8. 4. 16:08

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