Algorithm

빠른 A+B : 백준 15552번 - BufferedReader/Writer를 활용한 빠른 입출력

2020. 6. 6. 03:14

프로그래머스에 바로 도전하기엔 기초가 너무 부족한 것 같아서

백준에서 단계별로 풀이해나가려 한다.

Java의 경우 Main 이라는 클래스와 그 안에 main 메소드를 이용해 작성을 해야한다는 점을 몰라서 조금 해멨다.

그 외에는 계속 진행이 가능하다가 처음으로 부딪힌 벽이 시간제한이었다.

 


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


Scanner와 System.out.println()을 활용한 풀이의 경우

시간 초과로 정답으로 인정 받지 못했다.

 

Java를 사용하고 있다면, Scanner와 System.out.println 대신 

BufferedReader와 BufferedWriter를 사용할 수 있다. 

BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다.

 

라고 문제에서 친절하게 설명해준 방법으로 진행하고자 검색을 하다

너무 친절한 포스팅을 발견.

 

https://coding-factory.tistory.com/251

 

[Java] BufferedReader, BufferedWriter를 활용한 빠른 입출력

BufferedReader/BufferedWriter는 Buffer에 있는 IO 클래스입니다. 입력된 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후에 전달되됩니다. 출력도 마찬가지로 버퍼를 거쳐서 간접적으로 출력장치로

coding-factory.tistory.com


1. BufferedReader 로 한 줄 씩 읽어와서

2. StringTokenizer 로 공백으로 구분한 문자를 정수형으로 변환한 뒤

3. 정답을 출력할 StringBuffer에 누적한 뒤

4. BufferedWriter 로 정답 출력 후 flush, close

 

아마 앞으로 많이 활용하게 될 기능을 연습하는 문제가 아닐까 생각된다.

IDE를 사용하지 않으니 import 해야 할 클래스의 위치를 기억하는 것도 필요해졌다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.StringTokenizer;
//import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        try{
            BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
            int num = Integer.parseInt(bf.readLine());
            StringBuffer str = new StringBuffer();
            for(int i = 0; i < num; i++) {
                String s = bf.readLine();
                StringTokenizer st = new StringTokenizer(s);
                int a = Integer.parseInt(st.nextToken());
                int b = Integer.parseInt(st.nextToken());
                str.append(a+b+"\n");
            }
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            bw.write(str+"");
            bw.flush();
            bw.close();
            bf.close();
        }catch (IOException e) {
            e.printStackTrace();
        }
        
        /*Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        for(int i = 0; i < num; i++) {
            int a = scan.nextInt();
            int b = scan.nextInt();
            System.out.println(a+b);
        }
        scan.close();      */
    }
}
Colored by Color Scripter
cs

 

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

 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net

 

'Algorithm' 카테고리의 다른 글

K번째 수 (프로그래머스, Java, Level1)  (0) 2020.07.07
Selection Sort 구현해보기  (0) 2020.07.06
더하기 사이클 : 백준 1110번 - charAt, length()를 통한 문자열 재구성  (0) 2020.06.09
N 찍기 : 백준 2741번 - Scanner&System.out VS BufferedReader&BufferedWriter 메모리, 소요시간 비교  (0) 2020.06.06
가끔씩 한 문제씩 알고리즘 문제풀이를 해보려고 한다  (2) 2020.05.28
'Algorithm' 카테고리의 다른 글
  • Selection Sort 구현해보기
  • 더하기 사이클 : 백준 1110번 - charAt, length()를 통한 문자열 재구성
  • N 찍기 : 백준 2741번 - Scanner&System.out VS BufferedReader&BufferedWriter 메모리, 소요시간 비교
  • 가끔씩 한 문제씩 알고리즘 문제풀이를 해보려고 한다
리차드
리차드
화음을 좋아하는 리차드🎶리차드 님의 블로그입니다.
리차드
화음을 좋아하는 리차드🎶
리차드
전체
오늘
어제
  • 전체 게시글 보기 (200)
    • Portfolio (0)
    • Thoughts & Records (17)
    • 우아한테크코스 4기 (43)
    • Java & Spring (36)
    • JPA & QueryDSL (2)
    • Database (18)
    • Server & Infra (21)
    • Network (0)
    • Algorithm (11)
    • IDE (12)
    • HTML & CSS (4)
    • JavaScript (11)
    • Life (13)

블로그 메뉴

  • Github

공지사항

인기 글

태그

  • 오라클
  • aws
  • 자바스크립트
  • 화음을 좋아하는
  • oracle
  • 우테코
  • SQL
  • 우아한테크코스
  • java
  • EC2
  • javascript
  • 리차드
  • 스프링
  • Spring
  • 웹 백엔드 4기
  • git
  • IntelliJ
  • 스프링부트
  • 자바
  • 알고리즘

최근 댓글

최근 글

hELLO · Designed By 정상우.
리차드
빠른 A+B : 백준 15552번 - BufferedReader/Writer를 활용한 빠른 입출력
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.