백준 - Java
[ 백준 - 2439 ] [Java] 별 찍기 - 2
SeongJo
2022. 5. 8. 03:03
반응형
이 포스팅은 자바 8버전으로 풀이가 됐습니다.
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[]args) throws IOException {
try {
BufferedReader s_rd = new BufferedReader(new InputStreamReader (System.in));
String text= s_rd.readLine();
int a = Integer.parseInt(text);
for(int i=1; i<=a;i++) {
for(int j=a;j>i;j--) {
System.out.print(" ");
}
for(int j=0;j<i;j++) {
System.out.print("*");
}
System.out.println();
}
}
catch(IOException e) {
}
}
}
|
풀이
값을 입력받은 만큼 반목문을 반복한다.
예제에서는 5를 입력했다. 그렇다면 5가 입력된 경우 다음과 같은 표를 가져야 한다.
* | ||||
* | * | |||
* | * | * | ||
* | * | * | * | |
* | * | * | * | * |
역으로 생각하면 첫 줄에 공백 4칸 이후 3칸, 2칸, 1칸으로 마지막에는 공백이 출력되지 않아야 한다.
가장 간편한 방법으로 생각해낸 부분으로 입력받은 a변수 값보다 i가 클 때까지 공백을 주고 반복문을 종료하면 된다.
tmi) i를 1로 초기화했기 때문에 첫 줄에 *가 한칸 나올 수 있다.
이후 for 문을 사용하여 *를 출력한다.
오타가 있거나 문제가 이해가 안 되는 경우 댓글 부탁드리겠습니다!
짧은 포스팅 읽어주셔서 감사드립니다.
다음 포스팅 때 뵙겠습니다.
반응형