[BaekJoon] #10951 - A+B - 4 [Java][C++]
[BaekJoon] #10951 - A+B - 4 [Java][C++]
1. 아이디어
여러 개의 테스트 케이스에 대해 반복적으로 합을 구해야 하는데 테스트 케이스의 개수가 주어져 있지는 않다. 더 이상 받을 입력이 없는 EOF에 대해 고려하여 해결해야 한다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(T)$ | $O(1)$ |
($T$ = 테스트 케이스 수. Java는 전체 출력을 StringBuilder에 모았다가 출력하므로 공간 $O(T)$)
3. 코드
풀이 [Java][C++]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
String line;
while ((line = br.readLine()) != null) {
st = new StringTokenizer(line);
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
sb.append(a + b).append("\n");
}
System.out.println(sb);
}
}
Java의 경우 더 이상 받을 입력이 없으면 BufferedReader의 readLine 메서드가 null을 반환함을 반복문의 조건으로 활용했다.
1
2
3
4
5
6
7
8
9
10
11
12
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int a, b;
while (cin >> a >> b) {
cout << a + b << '\n';
}
}
C++의 경우 cin을 통한 입력에서 반환되는 std::istream 객체가 EOF에 도달하면 false로 평가됨을 반복문의 조건으로 활용했다.
This post is licensed under CC BY 4.0 by the author.