출처: https://www.acmicpc.net/problem/2441
문제
첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
알고리즘
이번 문제는 이전 별 찍기 - 3 문제를 오른쪽 정렬한 것과 같이 만들면 되는 문제입니다.
입력이 5일 경우
*****
****
***
**
*
과 같이 공백이 0이라면 별이 5개, 공백이 1개면 별이 4개, ... , 공백이 4개면 별이 1개와 같은 식으로 공백을 하나씩 추가하면서 별을 출력하시면 됩니다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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 = N; i > 0; i--) {
for(int j = i; j < N; j++) { // 공백 추가
sb.append(' '); // i 값이 1씩 줄어서 공백이 1개씩 추가
}
for(int j = i; j > 0; j--) { // 별 추가
sb.append('*'); // i 값이 1씩 줄어서 별이 1개씩 감소
}
sb.append('\n');
}
System.out.println(sb);
}
}
이 글의 알고리즘이나 코드에서 지적할만한 부분은 댓글에 남겨주시면 저에게 많은 힘이 됩니다! |
'Java > 백준문제풀이' 카테고리의 다른 글
[백준] 1712번: 손익분기점 [JAVA] (0) | 2022.02.18 |
---|---|
[백준] 1463번: 1로 만들기 [JAVA] (0) | 2022.02.17 |
[백준] 10828번: 스택 [JAVA] (0) | 2022.02.15 |
[백준] 15596번: 정수 N개의 합 [JAVA] (0) | 2022.02.14 |
[백준] 1978번: 소수 찾기 [JAVA] (0) | 2022.02.13 |
댓글