www.acmicpc.net/problem/10952

 

10952번: A+B - 5

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

www.acmicpc.net

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

 

 

 

 

풀이 .

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));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();

        StringTokenizer st = null;
        String str = null;

        while(true) {
            st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            if(a == 0 && b == 0) break;
            sb.append(a + b).append('\n');
        }

        bw.write(sb.toString());

        br.close();
        bw.flush();
        bw.close();
    }
}

'알고리즘 문제 > 백준 온라인 저지' 카테고리의 다른 글

[BOJ] 11021 - A + B - 7 JAVA  (0) 2021.01.08
[BOJ] 10953 - A + B - 6 JAVA  (0) 2021.01.08
[BOJ] 10951 - A + B - 4 JAVA  (0) 2021.01.08
[BOJ] 10950 - A + B - 3 JAVA  (0) 2021.01.08
[BOJ] 2558 - A + B - 2 JAVA  (0) 2021.01.08

www.acmicpc.net/problem/10951

 

10951번: A+B - 4

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

www.acmicpc.net

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

 

 

 

풀이 1. Scanner

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();
        Scanner sc = new Scanner(System.in);

        // EOF : Ctrl + D
        while(sc.hasNext()) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            sb.append(a + b).append('\n');
        }

        bw.write(sb.toString());

        sc.close();
        bw.flush();
        bw.close();
    }
}

 

 

풀이 2. BufferedReader

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));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();

        StringTokenizer st = null;
        String str = null;

        // EOF : Ctrl + D
        while((str = br.readLine()) != null) {
            st = new StringTokenizer(str);
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            sb.append(a + b).append('\n');
        }

        bw.write(sb.toString());

        br.close();
        bw.flush();
        bw.close();
    }
}

 

 

 

 

 

종료 시점이 따로 명시되지 않았으므로 EOF 를 입력받기 전까지 계속해서 입력을 받는다.

sc.hasNext(), br.readLine()은 EOF를 만나면 null을 반환한다.

'알고리즘 문제 > 백준 온라인 저지' 카테고리의 다른 글

[BOJ] 10953 - A + B - 6 JAVA  (0) 2021.01.08
[BOJ] 10952 - A + B - 5 JAVA  (0) 2021.01.08
[BOJ] 10950 - A + B - 3 JAVA  (0) 2021.01.08
[BOJ] 2558 - A + B - 2 JAVA  (0) 2021.01.08
[BOJ] 1000 - A + B JAVA  (0) 2021.01.08

www.acmicpc.net/problem/10950

 

10950번: A+B - 3

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

www.acmicpc.net

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

 

 

 

 

풀이 .

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));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int T = Integer.parseInt(st.nextToken());
        while(T-- > 0) {
            st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            bw.write(String.valueOf(a + b));
            bw.newLine();
        }

        br.close();
        bw.flush();
        bw.close();
    }
}

 

 

 

 

참고 : codeung.tistory.com/68

'알고리즘 문제 > 백준 온라인 저지' 카테고리의 다른 글

[BOJ] 10952 - A + B - 5 JAVA  (0) 2021.01.08
[BOJ] 10951 - A + B - 4 JAVA  (0) 2021.01.08
[BOJ] 2558 - A + B - 2 JAVA  (0) 2021.01.08
[BOJ] 1000 - A + B JAVA  (0) 2021.01.08
[BOJ] 2557 - Hello World! JAVA  (0) 2021.01.08

www.acmicpc.net/problem/2558

 

2558번: A+B - 2

첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 < A, B < 10)

www.acmicpc.net

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

 

 

 

풀이 .

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));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st = new StringTokenizer(br.readLine());
        int a = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        int b = Integer.parseInt(st.nextToken());
        bw.write(String.valueOf(a + b));

        br.close();
        bw.flush();
        bw.close();
    }
}

 

 

 

 

참고 : codeung.tistory.com/68

 

Scanner, BufferedReader 입력

입력방식에 대한 이야기를 할 뿐, 속도에 대한 이야기는 하지 않는다. Scanner  nextInt(), next() Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a +..

codeung.tistory.com

 

'알고리즘 문제 > 백준 온라인 저지' 카테고리의 다른 글

[BOJ] 10951 - A + B - 4 JAVA  (0) 2021.01.08
[BOJ] 10950 - A + B - 3 JAVA  (0) 2021.01.08
[BOJ] 1000 - A + B JAVA  (0) 2021.01.08
[BOJ] 2557 - Hello World! JAVA  (0) 2021.01.08
[BOJ] 15666 - N과 M (12) JAVA  (0) 2021.01.07

입력방식에 대한 이야기를 할 뿐, 속도에 대한 이야기는 하지 않는다. 

 

 

 

Scanner   nextInt(), next()

Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + b);


Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
System.out.println(a + " " + b);

공백 or 개행문자로 끊어서 받는다.

 

두 입력형식 모두 가능

(1)  ( nextInt() 사용했다고 가정 )

1 2'\n'

-> 3

 

(2)  ( nextInt() 사용했다고 가정 )

1'\n'

2'\n'

-> 3

 

이 경우는?

(3)  ( nextInt() 사용했다고 가정 )

1 2 3'\n'

-> 3

 

입력의 마무리는 개행문자 입력을 통해 이뤄지기 때문에 두번째 공백 이후에도 계속 입력할 수는 있지만 들어가지는 않는다. (1, 2 까지만 정상적으로 들어감)

 

 

 

Scanner  nextLine()

Scanner sc = new Scanner(System.in);
String a = sc.nextLine();
String b = sc.nextLine();
System.out.println(a + " " + b);

개행문자로만 끊어서 입력을 받는다.

String을 입력받는 함수이기 때문에 공백문자는 String의 일부로서 입력된다.

 

(1)

1234 1234 1234'\n'

asdf asdf asdf'\n'

-> 1234 1234 1234  asdf asdf asdf

 

공백문자는 입력을 종료시키지 못한다.

 

 

 

 

BufferedReader  read()

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

int a = br.read();
int b = br.read();
        
System.out.println(a + " " +b);

Single character 를 입력받아 그에 해당하는 아스키 코드를 int로 반환한다.

공백문자 입력은 입력을 종료하는 시그널로 사용되는 것이 아니라 하나의 단일문자로서 받아들여진다.

개행문자 입력은 입력을 종료하는 시그널로 사용되는 동시에 하나의 단일문자로서 받아들여진다.

 

(1)

1 2'\n'

-> 49 32

 

'1'에 대한 아스키 49

' '에 대한 아스키 32까지만 입력이 들어가고 2는 무시되었다.

 

 

(2)

(공백만 5개 입력)

-> 32 32'\n'

 

' ' 에 대한 아스키 32가 두 번 들어오고 뒤에 입력한 3개의 공백문자는 무시되었다.

다만 개행문자가 입력되기 전까지 입력을 계속 받을 뿐이다.

 

즉, 공백문자를 두개만 입력받으면 이미 a, b에 32가 할당되긴 했으나 개행문자 입력 전까지는 입력이 종료되지는 않은 상태를 유지하게 된다.

 

 

(3)

'\n''\n'

-> 10 10

개행문자에 대한 아스키 10이 두 번 들어오고 즉시 입력이 종료된다.

 

 

(4)

a, b에 1, 2를 할당할 생각으로

1'\n'

2'\n'

를 입력하려고 할 경우

1'\n' 단계에서 a = '1'의 아스키 49, b = '\n'의 아스키 10 이 입력되고 바로 종료되어버린다.

2'\n'를 입력받지 못하고 바로 종료된다.

 

 

(5)

12'\n'

-> 49 50

a = 49, b = 50 을 넣고 종료한다.

즉, BufferedReader의 next() 로는 두자리 숫자를 입력받지 못한다. (애초에 single character를 입력받는다고 했으니 당연)

 

단일문자로의 숫자를 숫자값 그대로 받고 싶다면

br.read() - '0' 으로 받으면 된다.

 

 

 

 

BufferedReader  readLine()

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String a = br.readLine();
String b = br.readLine();

System.out.println(a + " " +b);

줄 단위로 입력받아 String 으로 반환한다.  즉, 개행문자로 끊어서 입력을 받는다.

공백문자를 아무리 입력해도 String의 일부로서 입력되어질 뿐 입력 종료에는 영향을 미치지 않는다.

 

 

(1)

(공백문자 * 5)'\n'

(공백문자 * 5)'\n'

-> (공백문자 * 11) (sout에 있는 것까지 총 11개)

 

 

(2)

asdf asdf'\n'

1234 1234'\n'

-> asdf asdf 1234 1234

 

 

 

 

'기타' 카테고리의 다른 글

GIT CLI  (0) 2021.01.09
POSIX CLI  (0) 2021.01.09
인텔리제이 주요 단축키 모음  (0) 2020.12.27

www.acmicpc.net/problem/1000

 

1000번: A+B

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

www.acmicpc.net

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

 

 

 

풀이 .

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));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        bw.write(String.valueOf(a + b));

        br.close();
        bw.flush();
        bw.close();
    }
}

bw.write(int c) 가 존재하길래 bw.write(a + b) 를 사용했더니 문자가 깨져서 나왔다.

문서를 확인해보니 single char를 출력하는 함수였다.

 

bw.write() 로 int를 바로 출력하는 형식은 불가능한가보다.

 

 

 

 

 

참고 : codeung.tistory.com/68

 

Scanner, BufferedReader 입력

입력방식에 대한 이야기를 할 뿐, 속도에 대한 이야기는 하지 않는다. Scanner  nextInt(), next() Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a +..

codeung.tistory.com

 

'알고리즘 문제 > 백준 온라인 저지' 카테고리의 다른 글

[BOJ] 10950 - A + B - 3 JAVA  (0) 2021.01.08
[BOJ] 2558 - A + B - 2 JAVA  (0) 2021.01.08
[BOJ] 2557 - Hello World! JAVA  (0) 2021.01.08
[BOJ] 15666 - N과 M (12) JAVA  (0) 2021.01.07
[BOJ] 15665 - N과 M (11) JAVA  (0) 2021.01.07

www.acmicpc.net/problem/2557

 

2557번: Hello World

Hello World!를 출력하시오.

www.acmicpc.net

Hello World!를 출력하시오.

 

 

풀이 .

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        bw.write("Hello World!");
        bw.flush();
        bw.close();
    }
}

 

'알고리즘 문제 > 백준 온라인 저지' 카테고리의 다른 글

[BOJ] 2558 - A + B - 2 JAVA  (0) 2021.01.08
[BOJ] 1000 - A + B JAVA  (0) 2021.01.08
[BOJ] 15666 - N과 M (12) JAVA  (0) 2021.01.07
[BOJ] 15665 - N과 M (11) JAVA  (0) 2021.01.07
[BOJ] 15664 - N과 M (10) JAVA  (0) 2021.01.07
// JUNIT 테스트
class ApplicationContextInfoTest {
    AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
    @Test
    @DisplayName("모든 빈 출력하기") 
    void findAllBean() { 
        String[] beanDefinitionNames = ac.getBeanDefinitionNames(); 
        for (String beanDefinitionName : beanDefinitionNames) { 
            Object bean = ac.getBean(beanDefinitionName); 
            System.out.println("name=" + beanDefinitionName + " object=" + bean); 
        } 
    }
    
    
    @Test
    @DisplayName("애플리케이션 빈 출력하기") 
    void findApplicationBean() { 
        String[] beanDefinitionNames = ac.getBeanDefinitionNames(); 
        for (String beanDefinitionName : beanDefinitionNames) { 
            BeanDefinition beanDefinition = ac.getBeanDefinition(beanDefinitionName);
            
            // Bean의 종류에 따라 해당하는 것만 찾을 수 있음
            // Role ROLE_APPLICATION : 직접 등록한 애플리케이션 빈 
            // Role ROLE_INFRASTRUCTURE : 스프링이 내부에서 사용하는 빈 
            if (beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION) { 
                Object bean = ac.getBean(beanDefinitionName); 
                System.out.println("name=" + beanDefinitionName + " object=" + bean); 
            } 
        } 
    }
}

컨테이너에 등록된 스프링 빈을 조회할 수 있다.

 

 

 

 

 

출처 : www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

+ Recent posts