상냥한 세상 :: [백준]10950번: A+B-3

본문으로 바로가기

https://www.acmicpc.net/problem/10950

 

10950번: A+B - 3

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

  • 문제

총 N번의 테스트를 진행하기위해 N을 입력후, 서로다른 정수형 변수 A,B를 선언한뒤 두값에 입력을 받는다.

이후 A+B-3의 계산을 걸친 결과값만을 출력하도록 한다. 

단, 출력값에서의 줄바꿈은 필수이다.(println) 


  • 코드 1
import java.util.Scanner;

public class Main{
	public static void main(String[] args){
    	Scanner in = new Scanner(System.in);
        
        //N번 테스트할껀지 정하기
        int N=in.nextInt();
		
        int arr[]=new arr[N]
        
        //각 배열 원소마다 입력받은A와 B를 더해주어 i번째 배열에 저장
        for(int i =0; i<N; i++){
            int A=in.nextInt();
            int B=in.nextInt();
            arr[i]=A+B;
        }
        
        in.close();
        
        for(int k:arr){
        	System.out.println(k);
        }
    }
}
 for(int k:arr){
 	System.out.println(k);
 }

을 풀어서 쓰면 

for(int i = 0; i < arr.length; i++) {
	int k = arr[i]
}

이다.

for(변수 선언 부 : 배열){ 
	// 내용; 
}

for문안에서 어떻게 돌아가는지 머리속으로 컴파일 하기 어려운만큼 알기쉽게 가시화 해서 그림으로 그려봤다. 이해하는데 도움이 되었으면 좋겠다.




  • 결과


  • 코드 2

 

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

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        
        int N=Integer.parseInt(br.readLine());
        StringTokenizer st;
        StringBuilder sb= new StringBuilder();
        for(int i=0; i<N; i++){
            st=new StringTokenizer(br.readLine()," ");
            sb.append(Integer.parseInt(st.nextToken())+Integer.parseInt(st.nextToken()));
            sb.append('\n');
        }
        System.out.println(sb);
        
    }
}

 

여기서 StringTokenizer(문자열 자르기)가 평소와 쓰던 형태와 약간 다르게 쓰인걸 볼 수 있다

 

//평상시
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    
StringTokenizer st=new StringTokenizer(br.readLine(), " ");
int A=Integer.parseInt(st.nextToken());
int B=Integer.parseInt(st.nextToken());
.
.
.


//for문안에 StringTokenizer전개
StringTokenizer st;
for(int=0; i<N; i++){
    st=new StringTokenizer(br.readLine(), " ");
}


BufferedReader에서 readLine()메소드를 통해 문자열을 읽어오게 된다(Scanner의 nextLine()과 동일). 그리고 StringTokenizer은 문자열을 분리시켜주는 역할을 한다(Split과 동일). 입력은 한 줄 씩 읽어오므로, 매 반복문마다 새로운 StringTokenizer을 선언하면서 일일이 분리시켜서 받아 와야하므로 new부분을 for안에서 선언했다. 


  • 결과


  • 코드 1,2 성능 비교

Scanner사용
BufferedReader 사용

Computer ScienceBAEKJOON JAVA Practice카테고리의 다른글

[백준]15552번: 빠른 A+B  (0) 2022.01.09
[백준]8393번: 합  (0) 2022.01.09
[백준]2739번: 구구단  (0) 2022.01.08
[백준]2884번: 알람시계  (0) 2021.12.26
[백준]14681번: 사분면 고르기  (0) 2021.12.26