-
[백준/BOJ] 2741번 : N 찍기 (JAVA / 자바)백준 2022. 2. 1. 15:54
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/2741
- 문제 -
난이도 브론즈 3 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
보통 bufferedreader가 scanner보다 빠른 속도를 보여주기에 사용했었고, 출력 부분에서도 기존 print보다 빠른 성능을 보여주는 bufferedwriter가 있다. 하지만 출력이 적은 상황에서는 크게 차이가 없어 사용하지 않았지만 이번 문제에서는 연산이 없는 단순 출력인데도 print로 걸리는 시간이 상당히 높게 나왔기에 출력에서 성능좋은 bufferedwriter를 사용해 보겠다.
-풀이-
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int N = Integer.parseInt(br.readLine()); for(int i = 1; i <= N; i++) { //BufferedWriter는 기본적으로 한 라인에 전부 출력해주기 때문에 줄바꿈을 해줘야 한다. bw.write(i + "\n"); } bw.flush(); bw.close(); } }
-결과-
확연히 차이가 난다. 하지만 그만큼 import하고 생성하고 write, flush, close까지 입력해야 할 것들이 많아졌기에 코드 길이도 그만큼 길어졌다.
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠다.
'백준' 카테고리의 다른 글
[백준/BOJ] 2747번 : 피보나치 수 (JAVA / 자바) (0) 2022.02.01 [백준/BOJ] 2742번 : 기찍 N (JAVA / 자바) (0) 2022.02.01 [백준/BOJ] 2739번 : 구구단 (JAVA / 자바) (0) 2022.02.01 [백준/BOJ] 2576번 : 홀수 (JAVA / 자바) (0) 2022.01.31 [백준/BOJ] 2566번 : 최댓값 (JAVA / 자바) (0) 2022.01.31