문제
자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
출력
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
| 예제 입력 | 예제 출력 |
| 5 | 1 2 3 4 5 |
⭕ 풀이
import java.io.*;
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.flush();
}
}
✅ 메모리 26196kb 시간 208ms
flush를 for문 내에 넣고 실행했을경우 메모리33596kb 시간972ms 로 비효율적으로보인다.
다른분들의 코드는 StringBuilder를 많이 사용하시길래 StringBuilder append로 다시 풀어봤다
import java.io.*;
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());
StringBuilder sb = new StringBuilder();
for(int i=1;i<=n;i++){
sb.append(i).append("\n");
}
System.out.print(sb);
}
}
❗ StringBuilder 문자열빌더로 sb.append로 문자를 합친후 마지막에 sb에 담아두걸 출력하는것같다.
이렇게하니 메모리와 시간 17232kb 시간 164ms로 모두 훨씬 줄었다.
-출처
https://www.acmicpc.net/problem/2741
'Algorithm > Baekjoon(Java)' 카테고리의 다른 글
| [백준/JAVA] 11021 : A+B - 7 (0) | 2022.07.10 |
|---|---|
| [백준/JAVA] 2742 : 기찍 N (0) | 2022.07.10 |
| [백준/JAVA] 15552 : 빠른 A+B (0) | 2022.07.09 |
| [백준/JAVA] 8393 : 합 (0) | 2022.07.08 |
| [백준/JAVA] 10950 : A+B - 3 (0) | 2022.07.07 |