JUINTINATION

백준 10951번: A + B - 4 본문

백준 알고리즘/반복문

백준 10951번: A + B - 4

DEOKJAE KWON 2022. 6. 22. 22:38
반응형

문제

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

 

10951번: A+B - 4

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

www.acmicpc.net


풀이

입력에 더 이상 읽을 수 있는 데이터가 없을 때까지(EOF) 두 수를 입력받아 더한 값을 출력합니다.
EOF는 End Of File의 줄임말로 파일의 끝을 의미합니다. Ctrl + z 혹은 Ctrl + c 등을 입력하는 방식으로 프로그램을 종료합니다.


코드

C언어

while문 안에서 x와 y를 scanf 함수를 이용하여 EOF가 아니면 x + y의 값을 출력하고 EOF면 while문을 종료합니다.

#include <stdio.h>
main() {
    int x, y;
    while (scanf("%d %d", &x, &y) != EOF) {
        printf("%d\n", x + y);
    }
}

자바

위의 C언어 코드처럼 입력이 들어올 때마다 출력해 줄 수도 있지만 모든 입력이 끝난 후에 마지막에 출력하기 위해 Stringbuilder를 이용합니다.

import java.io.IOException;
import java.io.BufferedReader;
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 str = null;
        StringBuilder sb = new StringBuilder();
        while ((str = br.readLine()) != null) {
            StringTokenizer st = new StringTokenizer(str, " ");
            int x = Integer.parseInt(st.nextToken());
            int y = Integer.parseInt(st.nextToken());
            sb.append(x + y).append("\n");
        }
        System.out.print(sb);
    }
}

결론

프로그램의 종료 조건이 없는 이러한 문제의 경우에도 위와 같은 방식 등을 이용하여 해결할 수 있게 되었습니다.

반응형
Comments