타오름
조각보
타오름
전체 방문자
오늘
어제
  • 조각보
    • DEVELOPER B 🌱
      • Programming
      • Java
      • Spring | SpringBoot
      • JPA
      • Database
      • DS | Algorithms
      • CS
      • Git | Github
      • IDE

블로그 메뉴

  • HOME
  • TAG
         
        

CALENDAR

        
«   2025/07   »
일 월 화 수 목 금 토
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
    

티스토리

hELLO · Designed By 정상우.
타오름

조각보

[Java] 백준 10718번 : We love kriii (입출력과 사칙연산)
DEVELOPER B 🌱/DS | Algorithms

[Java] 백준 10718번 : We love kriii (입출력과 사칙연산)

2021. 9. 16. 22:38

 

 

 

1. 문제

 

 

◽  주소 : https://www.acmicpc.net/problem/10718

 

10718번: We love kriii

ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박

www.acmicpc.net

 

 

◽  문제 내용 : 

 

 

 

 

2. 풀이

 

 

 

◽ 풀이 1 : System.out.print() 사용 (System 클래스 - 표준입출력)

 

public class Main{
    public static void main(String[] args) {
        System.out.println("강한친구 대한육군");
        System.out.println("강한친구 대한육군");
        
        //아래경우가 더 오래걸림
        //System.out.print("강한친구 대한육군\n강한친구 대한육군"); 
    }
}

 

- 자바 배울때 제일 먼저 배우고 가장 흔하게 사용하는 방법이다.

 

- 하지만 속도면에서 매우 느린편에 속한다. 왜냐하면 리소스를 많이 사용하여 성능 부하를 초래하기 때문이다.

 

- 입출력이 많은 코드에서는 지양하는 것이 좋다. 

 

- println() :  출력하고 한줄 뜀 / print : 출력

 

 

 

◽ 풀이 2 : BufferedWriter 사용

 

 

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
 
public class Main {
	public static void main(String[] args) throws IOException {
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
 
		bw.write("강한친구 대한육군");
		bw.newLine();	
		bw.write("강한친구 대한육군");
        
		bw.flush();
		bw.close();
	}
}

 

 

- BufferedWriter은 Buffer에 있는 IO 클래스로 데이터를 버퍼에 저장해두었다가 한번에 출력하는 방식으로 동작한다.

 

- 데이터를 하나씩 출력하는 것이 아니라 한번에 출력하므로 속도가 빠르다.

 

- 입출력이 많은 코드에서 지향하는 방식이다. 

 

- bw.close() 하기 전에 꼭 bw.flush()를 하여 출력하고 스트림을 비워준다. 

 

 

 

 

◽ 속도  비교 

 

- 1번 풀이 :

 

 

- 2번 풀이 : 

 

 

 

- 단순한 한 문장 출력이여서 System.out.print() 방식이 좀 더 빠르다.

 

- 1번 풀이 하단은 println() 사용했으며 상단은 print("\n") 사용했다.

   println()이 더 빠른 이유는 중간 과정에 파싱 과정이 없기 때문일것 같다.

 

- 하지만 입출력의 횟수가 많아지거나 복잡해질수록 BufferedWriter을 사용한 방식이 좀 더 빨라진다. 

 

 

 

 

3. 참고 

 

 

 

◽ BufferedWriter 정리

 

 

 

 

 

 

 

    'DEVELOPER B 🌱/DS | Algorithms' 카테고리의 다른 글
    • [Java] 백준 10172번 : 개 (입출력과 사칙연산)
    • [Java] 백준 10171번 : 고양이 (입출력과 사칙연산)
    • [Java] 백준 2557번 : Hello World (입출력과 사칙연산)
    • [알고리즘] 시간 복잡도(Time Complexity)란? (Big-O 표기법)
    타오름
    타오름

    티스토리툴바