300x250
https://www.acmicpc.net/problem/2439
문제
문제를 보며 생각
이전 문제 별 찍기 -1와 비슷하다.
입력 : N
1행부터 N행까지 출력을 하기 위해 행을 반복하는 큰 틀의 반복문을 구상합니다.
별 : 첫 행에 1개.. 두 번째 행에 2개 · · · · ·
공백 : 첫 행에 4개.. 두번째 행에 3개 · · · · ·
별은 행 만큼 증가하니 N - i(행) 의 값으로 공백을 출력해 주면 되겠다.
필요한 반복문으로는.. 행 반복문, 공백 반복문, 별 반복문 이 되겠다.
풀이
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++) { // 행 반복
for(int j = 1; j <= N - i; j++){ // 공백 반복
System.out.print(" ");
}
for(int k = 1; k <= i; k++){ // 별 반복
System.out.print("*");
}
System.out.println(); // 줄 바꿈
}
}
}
Scanner 로 입력받는 방법이다.
풀이 2
import java.io.*;
import java.util.Scanner;
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++){
for(int j = 1; j <= N - i; j++){
bw.write(' ');
}
for(int k = 0; k < i; k++) {
bw.write('*');
}
bw.newLine();
}
br.close();
bw.flush();
bw.close();
}
}
Buffered를 이용한 입출력을 사용했습니다.
BufferedWriter는 출력할 문자가 많아질수록 다른 출력문에 비해 빠른 성능을 보여줍니다.
300x250
300x250
'Progamming > BAEK JOON > 백준의 알고리즘' 카테고리의 다른 글
[백준] 10951번 : A+B - 4 - JAVA (0) | 2023.03.06 |
---|---|
[백준] 10952번 : A+B - 5 - JAVA (0) | 2023.03.03 |
[백준] 2438번 : 별 찍기 - 1 - JAVA (4) | 2023.03.02 |
[백준] 11382번 : 꼬마 정민 - JAVA , 런타임오류 (0) | 2023.03.02 |
[백준] 25314번 : 코딩은 체육과목 입니다 - JAVA ,BufferedReader, StringBuilder 사용 (0) | 2023.02.28 |