[★1][백준10950번]A + B - 3 (JAVA)

Date:     Updated:

카테고리:

태그:

[★1][백준10950번]A + B - 3 (JAVA)

10950번 문제 ☞ https://www.acmicpc.net/problem/10950

난이도 ☞ [★1]

A + B - 3

  • 문제
    • 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
    • 첫째 줄에 테스트 케이스의 개수 T가 주어진다.
      각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
    • 각 테스트 케이스마다 A+B를 출력한다.

      예제입력 예제출력
      5
      1 1
      2 3
      3 4
      9 8
      5 2
      2
      5
      7
      17
      7

내가 푼 풀이

이번 문제는 for문을 활용하여 구현하는 부분입니다. 우선 제일 기본적인 Scanner를 사용하여 출력하는 방법입니다.

[ 풀이 1 ]

메모리 : 17952KB
시간 : 240ms

Scanner

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);

		int t = s.nextInt();

		for (int i = 0; i < t; i++) {       // t번 만큼 반복함.
			int a = s.nextInt();            // a를 입력 받음
			int b = s.nextInt();            // b를 입력 받음
			System.out.println(a + b);      // a+b를 출력함
		}
		s.close();
	}

}

다음은 for문과 Scanner를 활용하여 Array에 담아서 하나씩 꺼내어 출력하는 방법입니다.

[ 풀이 2 ]

메모리 : 17888KB
시간 : 228ms

Scanner, Array

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		
		int t = s.nextInt();
		int arr[] = new int[t];
		
		for (int i = 0; i < t; i++) {
			int a = s.nextInt();
			int b = s.nextInt();

			arr[i] = a + b;             // i번째에 a+b의 값을 담음
		}
		s.close();
		
		for(int j:arr ) {
			System.out.println(j);      // arr의 값을 하나씩 꺼내어 출력함
		}
	}

}

마지막으로 BufferedReader를 사용하여 작성을 하도록 해보겠습니다. 아래의 코드를 참고하시기 바랍니다. 이 방법도 Array방식과 비슷하게 배열을 저장해두었다가 출력하는 방식이다. Array에서는 하나씩 꺼내는 방식이었다면 이번 방식은 한번에 \n까지 입력해주어 한번에 출력하는 방법이다. 꺼내는 방식의 차이가 조금 있다.

[ 풀이 3 ]

메모리 : 14172KB
시간 : 124ms

BufferedReader, StringBuilder, StringTokenizer ```java 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 IOException {
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	int t = Integer.parseInt(br.readLine());

	StringTokenizer st;
	StringBuilder sb = new StringBuilder();

	for (int i = 0; i < t; i++) {
		st = new StringTokenizer(br.readLine(), " ");
		sb.append(Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken()));
			// 값을 두개 받아 더해서 sb에 append함.
		sb.append('\n');
			// 각각 줄 바꿈도 해줌.
	}

	System.out.println(sb);
}

} ``` 이번 문제에서도 보다시피 Scanner보다는 BufferedReader의 성능이 훨씬 좋음을 알 수 있다.

BKJN 카테고리 내 다른 글 보러가기

댓글 남기기