[softeer level1] A+B(C++, JAVA, Python)

lsh235·2023년 2월 5일
0

CodingTest

목록 보기
2/7
post-thumbnail

문제

https://softeer.ai/practice/info.do?idx=1&eid=362
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성한다.

입출력은 다음과 같다.

해석

첫 번째 라인에서 총 입력 받을 케이스의 횟수를 받는다.
각 케이스마다 공백을 기준으로 A B가 주어진다.
A B를 더하여 "Case #1 : A+B"의 형식으로 출력한다.

구현

  1. 케이스 횟수를 입력받도록 구현한다.
  2. 횟수 만큼 반복하여 입력을 받고 이를 A B로 구분 할 수 있도록 한다.
  3. 구분 된 A B를 더하여 "Case #1 : A+B" 다음의 형식으로 출력한다.

C++

#include<iostream>

using namespace std;

int main(int argc, char** argv)
{
    // 1.
	int n;
	cin >> n;
   	// 2.
	int a, b;
	for(int i = 1; i <= n; ++i) {
		cin >> a >> b;
  		//3.
		cout << "Case #" << i << ": " << a+b << endl;
	}
	return 0;
}

JAVA

import java.util.*;
import java.io.*;

public class Main
{
    public static void main(String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 1.
		int n = Integer.parseInt(br.readLine());
        // 2.
		for (int i = 1; i <= n; ++i) {
            String str = br.readLine();
		    StringTokenizer st = new StringTokenizer(str, " ");
			int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());    
            // 3.
            System.out.println("Case #" + i + ": " + (a+b));
		}
    }
}

Python

import sys
# 1.
num=int(input())
# 2.
for i in range(num):
    a,b = map(int, sys.stdin.readline().split())
  	# 3.
    print('Case #'+str(i+1)+':',a+b)

새로 알게 된 부분

JAVA
1. System.in 사용시 IOException처리해주지 않으면 에러 발생
2. InputStreamReader는 byte stream을 character stream으로 변경해주는 역할을 한며 키보드 입력, 파일 내용, 파라미터의 charset 정보를 받아들여 읽을 수 있다.
3. BufferedReader 효율적으로 문자를 읽어들이기 위해서 버퍼링을 해주는 것으로 개행문자 단위 즉 Line으로 나누어진다.
4. BufferedReader에는 read()는 한 글자만 읽어서 정수형으로 반환하고, readLine()은 한 줄을 읽어서 string으로 반환한다.
5. Integer.parseInt()는 입력받은 값을 int형으로 형변환을 시켜주고 Integer.parseInt(br.readLine(), k) k에 8, 10, 16을 넣어주면 해당 진수로 변환이된다. k를 넣지않고 그냥 사용할 경우 10진수.
6. StringTokenizer는 매개변수 string을 기본 delim(\t \n \r \t)로 분리한다.
7. nextToken은 StringTokenizer를 통해 분리한 객체의 tokenizer의 다음 token을 반환한다.

0개의 댓글