💻 STUDY/알고리즘

백준 1000번 :: A+B

삼색꼬치전 2024. 5. 23. 12:23

 


 

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

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(br.nextLine());
        int b = Integer.parseInt(br.nextLine());
        
        System.out.println(a+b);
    }
       
}

 

 

기초문제지만 매번 Scanner 클래스만 쓰다 BufferedReader에 익숙해지고자 다시 풀어본다.

왜 컴파일 에러가 났냐?

 

BufferedReader을 받을 때, readLine() 은 한 행을, read() 은 한 문자를 읽어온다.

그리고 각각 String, int 를 return 함. 

 

read() 은 받은 정수를 아스키코드로 변환해서 변수에 저장한다.

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

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int a = br.read(); // 1 입력
        System.out.println(a); // 49 

    }
}

 

 

이를 위해서는 

(1) br.read() - '0'

(2) br.read() - 48(0의 아스키코드값)

해주면 입력한 대로 나온다.

 

그러나 한 문자만 읽기 때문에 10을 입력해도 1만 읽혀서 49로 저장. ==> readLine()을 사용한다.

하지만 공백도 문자열이기에 예제 입력에서 1 2 이렇게 입력되었다면, 

공백을 기준으로 분리해줘야 한다. 

 

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));
        String a = br.readLine();

        StringTokenizer st = new StringTokenizer(a, " "); // a에서 입력받은 문자열을 공백 기준으로 자름
        String b = st.nextToken();
        String c = st.nextToken();
        System.out.println(a); // string int 
        System.out.println(b); // string
        System.out.println(c); // int
    }
}

 

 


 

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


public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine()," ");
      
        int b = Integer.parseInt(st.nextToken());
        int c = Integer.parseInt(st.nextToken());
        
        System.out.println(b+c);
    }
    
    
}

 

문제 입력을 어떻게 하는지 잘 읽자.