파이썬에서처럼 System.print.out("*" * i); 로 해서는 안된다.
String * int 는 JAVA에서 지원하지 않는다.
이중 반복문을 통하여 출력하여 주어야 한다.
방법 1. StringBuilder를 이용
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= N; i++){
for (int j=1; j <= i; j++)
sb.append("*");
}
sb.append("\n");
}
System.out.print(sb);
}
}
br.readLine(); 은 문자열로 추출되므로, 정수로 쓰고자한다면 Integer.parseInt()를 통해 변화시켜주어야한다.
Stringbuilder를 사용한다면
모든 문자열을 하나의 객체에 쌓아 놓은 뒤
출력은 마지막에 한 번만 해주니 시간을 아낄 수 있는 방법 중 하나다.
2. BufferedWriter를 이용
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
for (int i = 1; i <= N; i++){
for (int j=1; j <= i; j++){
bw.write("*");
}
bw.write("\n");
}
bw.flush();
bw.close();
}
}
BufferedWriter 는 출력할 문자들이 많아지면 많아질수록 다른 출력 방법들에 비해 매우 우수한 성능을 보여준다.
아래것이 StringBuilder를 이용,
위의 것이 BufferedWriter를 이용한 방법이다.
'Programming > 알고리즘' 카테고리의 다른 글
[백준] 1110- 더하기 사이클 - JAVA[자바] (0) | 2022.11.26 |
---|---|
[백준] 10951 - A+B-4 - JAVA[자바] (0) | 2022.11.26 |
[백준] 10950번 - "A + B - 3" - JAVA[자바] (0) | 2022.11.25 |
[백준] 2480 - 주사위 세개 - java[자바] (0) | 2022.11.25 |
[백준] 2753 - 윤년 -JAVA[자바] (0) | 2022.11.24 |