Algorithm

N 찍기 : 백준 2741번 - Scanner&System.out VS BufferedReader&BufferedWriter 메모리, 소요시간 비교

2020. 6. 6. 03:37

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

 

시간제한을 처음 걸려본 뒤 푼 첫 문제다.

시험삼아 Scanner 와 System.out.println()을 활용해서 풀어봤는데 제한에 걸리지 않았다.

그래도 BufferedReader와는 얼마나 차이가 나는 것인지 비교를 해보고 싶어져서

BufferedReader/BufferedWirter를 활용해서 다시 풀어보고 메모리와 시간을 비교해보기로 했다.


먼저 Scanner&System.out.println() 으로 풀이한 결과다

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        for(int i = 1; i <= num; i++) {
            System.out.println(i);
        }
        scan.close();      
    }
}
Colored by Color Scripter
cs

 

Scanner, System.out.println() 활용 결과


다음은 BufferedReader&BufferedWriter 로 풀이한 결과다

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
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.StringTokenizer;
 
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 = 1; i <= num; i++) {
            str.append(i+"\n");
        }
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        bw.write(str+"");
        bw.flush();
        bw.close();
        bf.close();
        }catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Colored by Color Scripter
cs

BufferedReader, BufferedWriter 활용 결과


Scanner, System.out.println()을 사용한 결과를 100%라고 했을 때, 

BufferedReader, BufferedWriter를 사용한 결과는 다음과 같다

 

97%의 메모리 사용 | 31%의 소요시간 | 170%의 코드 길이

 

코드 길이는 길어졌지만 소요시간은 1/3 수준으로 줄어들었고 메모리도 절약됐다.

 

지금까지는 자바 언어를 공부하며 이해와 응용, 결과에만 집중했다면 

앞으로는 더 나은 프로그래밍을 위한 요소로

메모리 활용, 처리속도 또한 함께 고려할 수 있게 될 것 같다.

 

 

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

 

2741번: N 찍기

자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

'Algorithm' 카테고리의 다른 글

K번째 수 (프로그래머스, Java, Level1)  (0) 2020.07.07
Selection Sort 구현해보기  (0) 2020.07.06
더하기 사이클 : 백준 1110번 - charAt, length()를 통한 문자열 재구성  (0) 2020.06.09
빠른 A+B : 백준 15552번 - BufferedReader/Writer를 활용한 빠른 입출력  (0) 2020.06.06
가끔씩 한 문제씩 알고리즘 문제풀이를 해보려고 한다  (2) 2020.05.28
'Algorithm' 카테고리의 다른 글
  • Selection Sort 구현해보기
  • 더하기 사이클 : 백준 1110번 - charAt, length()를 통한 문자열 재구성
  • 빠른 A+B : 백준 15552번 - BufferedReader/Writer를 활용한 빠른 입출력
  • 가끔씩 한 문제씩 알고리즘 문제풀이를 해보려고 한다
리차드
리차드
화음을 좋아하는 리차드🎶리차드 님의 블로그입니다.
리차드
화음을 좋아하는 리차드🎶
리차드
전체
오늘
어제
  • 전체 게시글 보기 (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

공지사항

인기 글

태그

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

최근 댓글

최근 글

hELLO · Designed By 정상우.
리차드
N 찍기 : 백준 2741번 - Scanner&System.out VS BufferedReader&BufferedWriter 메모리, 소요시간 비교
상단으로

티스토리툴바

개인정보

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

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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