여느때 처럼 별찍기 문제를 다중 for문으로 해결하여
제출을 했는데,
상위권 제출자들의 소스코드를 보니 repeat()메소드를 사용하여 한 번의 for문으로 해결하고 있었다!
Repeat
- Java11에 추가된 String 메소드 repeat
- String 문자열을 주어진 파라미터의 횟수만큼 반복한다.
- 파라미터를 0으로 지정하면 빈 문자열을 반환한다.
- 파라미터를 음수로 지정하면 IllegalArgumentExceptionthrow 에러를 반환한다.
- 파라미터를 1로 지정하면 문자열을 그대로 반환한다.
- 내부적으로 Arrays.fill()과 System.arraycopy()메소드를 호출하여 새 문자열을 만든다.
https://www.javastring.net/java/string/java-string-repeat-method
Java String repeat() Method
Java String repeat() method returns a new string whose value is the concatenation of this string given number of times.
www.javastring.net
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));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
for (int i = 1; i <= N; i++)
{
for (int j = N-i; j > 0; j--)
{
sb.append(" ");
}
for (int j = 1; j <= i; j++)
{
sb.append("*");
}
sb.append("\n");
}
bw.write(sb.toString());
br.close();
bw.flush();
bw.close();
}
}
다중 for문을
repeat을 사용하여 아래와 같이 바꿀 수 있다.
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));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
for (int i = 1; i <= N; i++)
{
sb.append(" ".repeat(N-i));
sb.append("*".repeat(i));
sb.append("\n");
}
bw.write(sb.toString());
br.close();
bw.flush();
bw.close();
}
}
코드 단축과 가독성이 높아졌다.
하지만 내가 설치한 자바는 1.8이기 때문에 사용할 수 없돠...
'Baekjoon' 카테고리의 다른 글
[Java/Algorithm] 백준 10818번: 최소, 최대 구하기 (배열o, 배열x) (0) | 2023.11.12 |
---|---|
[Java/Algorithm] 백준 10871번: X보다 작은 수 (0) | 2023.11.12 |
[Java/Algorithm] 백준-10951 EOF 사용하기 + 성능비교 (1) | 2023.11.11 |
[Java/Algorithm] BufferedWriter vs. StringBuilder 속도차이! (0) | 2023.11.10 |
[Java/Algorithm] BufferedReader vs. Scanner 분명한 속도 차이! (1) | 2023.11.09 |