빠른 A+B

Gwon SeolHyeong·2020년 5월 1일
0

Day 2

빠른 A+B

일반적으로 단순한 계산을 구하는 방식은 Day 1 에 풀었던 방법으로 Scanner 방식을 사용하면 구할 수 있습니다.
그러나 15552번 문제와 같이 개수가 기하급수적으로 많은 계산식을 구하는 것은 컴파일을 실행하는데 많은 시간이 소요될 수 있으므로 다른 방법을 이용해서 구할 수 있습니다.

import java.util.*;
import java.io.*;
public class Main{
	public static void main(String args[]) throws Exception {
		BufferedReader br = 
        new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = 
        new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        
		int c;
		c = Integer.parseInt(br.readLine());
        for (int i = 0; i < c; i++) {
            int a, b;
            st = new StringTokenizer(br.readLine());
            a = Integer.parseInt(st.nextToken());
            b = Integer.parseInt(st.nextToken());
            bw.write(a+b + "\n");
        }
		bw.close();
	}
}

위와 같은 방법으로 코딩을 진행할 수 있었습니다.
위와 같은 방법을 작성하면서 배운 내용을 정리해보겠습니다.

import java.io.*
입출력과 같은 많은 클래스를 제공해줍니다. 밑에서 사용할 방법인 클래스를 이용하기 위해서 작성해줘야 합니다.

throws Exception -> 예외처리
문장에서 살펴보면 Integer, bw 등 예외로 처리해줘야 할 부분이 존재합니다.
그렇기 때문에 메인 메소드에서 실행되는 예외 문장들을 실행시키기 위해서 작성해줘야 합니다.

BufferedReader, BufferedWriter
위와 같은 선언문을 작성해서 입력값과 출력값을 지정해줍니다.
단, parseInt를 선언한 이유는 readLine 값을 통해서 들어온 값은 문자로 취급되기 때문에 정수값 변환을 선언해줘야 합니다.
추가로 BufferedWriter는 마지막에 bw.close() 나 bw.flush() 를 작성해줘야만 값이 제대로 출력됩니다.

StringTokenizer
이 명령어는 readLine을 통해서 입력받은 값을 공백단위로 끊어서 순서대로 호출시켜줍니다.
추가로 괄호 안에 따로 명령자를 입력시켜서 (ex. ,) 등을 활용해서 구분자를 선언할 수 있습니다.

결론은 c의 값으로 계산하는 총 개수를 선정합니다.
a, b에 값을 입력하고 c의 개수 만큼 계산을 진행합니다.

이번 과제를 통해서 새로운 문법을 많이 접할 수 있었습니다. 숫자가 아닌 문자 호출 등을 활용해서 많은 양의 값을 불러올 때 사용하면 유용할 것 같습니다.

profile
정보보안 공부

0개의 댓글