티스토리 뷰

알고리즘/백준

[백준] 15552번 빠른 A+B

머어하지 2018. 12. 11. 22:07

생각

Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q10000/Q15552.java 각 A+B의 결과를 출력한다.


처음 생각

입력으로 받고 계산후 출력해야하는 개수가 최대 100만개로 매우 많으므로 Java의 경우 Scanner, Python의 경우 input() 을 그대로 사용하면 시간 초과가 날 가능성이 매우 크다.

▶ Java의 경우는 BufferedReader, Python의 경우에는 sys.stdin 을 이용해서 입력을 받아주면 된다.

▶ Java의 경우 StringBuilder나 BufferedWriter를 통해 입력을 누적해서 한 번에 출력을 해주어야 메모리 초과가 나오지 않는다.


방안

1) 방안


입력과 출력이 많다고 생각되는경우 이 문제와 같이 BufferedReader와 StringBuilder를 사용하면 메모리와 시간이 크게 줄어든다.


2) Java 풀이


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package baekjoon.q10000;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
 
public class Q15552 {
    public static void main(String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<n;i++){
            StringTokenizer st = new StringTokenizer(br.readLine());
            sb.append(Integer.parseInt(st.nextToken())+Integer.parseInt(st.nextToken())+"\n");
        }
        System.out.println(sb);
    }
}


3) Python 풀이


1
2
3
4
5
import sys
= int(input())
for i in range(n):
    a,b = map(int,sys.stdin.readline().split())
    print(a+b)



'알고리즘 > 백준' 카테고리의 다른 글

[백준] 6593번 상범 빌딩  (0) 2019.04.02
[백준] 1978번 소수 찾기  (0) 2018.12.10
[백준] 1476번 날짜 계산  (0) 2018.12.09
[백준] 4673번 셀프 넘버  (0) 2018.12.07
[백준] 9095번 1, 2, 3 더하기(DP)  (0) 2018.12.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday