-
[백준/Java] 2741번 - 1부터 N까지 출력Problem Solving 2022. 3. 25. 01:24
이전까지는 문제를 모두 Scanner 및 println으로 풀었는데, 지난 문제에서 버퍼를 통해 데이터를 더욱 효율적으로 입력하고 출력하는 방법을 알게 되면서, 사용법에 익숙해지고자 이 방법으로도 풀어 보았다.
아직은 좀 낯설다. 연습을 조금 더 하면 될 것 같다.
두 가지 방법으로 풀어 보았다.
- Scanner 클래스와 System.out.println() 이용
- BufferedReader/BufferedWriter 클래스 이용
1. Scanner / System.out.println()
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); for (int i=1;i<=N;i++) { System.out.println(i); } sc.close(); } }
2. BufferedReader/BufferedWriter
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.IOException; 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++) { bw.write(i + "\n"); } bw.close(); } }
확실히 전자가 코드가 짧고 간결하나, 성능 면에서는 큰 차이를 보인다.
위가 전자, 아래가 후자로 풀었을 때 사용 메모리 및 걸린시간이다. 딱 봐도 버퍼 메모리를 쓸 때가 빠르고 효율적이다.
'Problem Solving' 카테고리의 다른 글
[백준/Java] 11021번 - A+B 예쁘게 (0) 2022.03.25 [백준/Java] 2742번 - N부터 1까지 출력 (0) 2022.03.25 [백준/Java] 15552번 - 빠른 A+B (0) 2022.03.25 [백준/Java] 8393번 - 1부터 N까지의 합 (0) 2022.03.24 [백준/Java] 10950번 (0) 2022.03.24