오늘의 실수 - 0518

한장민·2022년 5월 18일
0

오늘의실수

목록 보기
5/6
post-thumbnail

백준 15552번

처음 짜서 제출했던 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException{
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int t = Integer.parseInt(br.readLine());
		int[] arr = new int[t];
		
		for(int i = 0; i < t; i++) {
			String str = br.readLine();
			StringTokenizer st = new StringTokenizer(str, " ");
			
			int a = Integer.parseInt(st.nextToken());
			int b = Integer.parseInt(st.nextToken());
			
			arr[i] = (a+b);
		}
		
		for(int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
		
	}
}

BufferedReader는 사용하지만 BufferedWriter를 사용하지 않고 System.out.println을 사용해서 속도가 굉장히 느렸다. 그리고 for문이랑 BufferedReader를 함께 사용할때 입력하는 방식에 있어서 착각한 부분이 있어 배열을 만들어서 사용했다. 이 경우 출력문을 첫 번째 for문안에 넣으면 배열의 크기만큼이 입력받지 않고 입력받을때마다 합을 출력해서 따로 출력을 위한 for문을 만들어야 코드가 원하는대로 실행되었다. 아마 이 과정에서도 효율적이지 못했던 것 같다.


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException{
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int t = Integer.parseInt(br.readLine());
		
		StringTokenizer st;
		
		for(int i = 0; i < t; i ++) {
			st = new StringTokenizer(br.readLine(), " ");
			bw.write((Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken())) + "\n");
		}
		br.close();
		
		bw.flush();
		bw.close();
		
	}

}

BufferedWriter까지 사용한 코드. 이 경우 조건에 맞는 시간안에 코드가 수행되었다. BufferedWriter도 사용법을 익히는 시간을 좀 가져야겠다.

profile
HAAN YJGB

0개의 댓글