백준 - 알고리즘
백준 (JAVA) - 별찍기 - 2 (2349)
정리하고기록하자
2021. 11. 8. 22:51
반응형
백준 - 알고리즘 for문 별찍기 - 2 (2349) 문제
문제 :
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
먼저 입력한 숫자 만큼 반복문을 돌려야 한다.
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
for (int i = 1; i <= a; i++) {
}
첫번째 출력문을 보면
오른쪽에 * 1개 가 있다. 그럼 빈공간이 4개가 있어야 하고 * 은 1개가 있어야 한다.
그렇다면 첫번째 줄에는 입력한 숫자에서 1을 빼서 공백을 만들어야 한다.
for ( int i = 1 ; i <= N ; i++ ){
for( int j = 1 ; j <= N-i ; j++ ) {
print(" ");
}
}
첫번째 반복문에서 i 가 1이고 i <= 5 이므로
두번째 반복문에선 j 가 1이고 j <= 5 - 1 이므로
첫번째 출력문에 4개의 공백이 생긴다.
마지막으로 * 을 찍어야 하는데
for ( int t = 1 ; t <= i; t++){
print("*");
}
마지막으로 t 가 1 이고 t <= 5 이므로 조건이 성립되면 * 을 찍는다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
for (int i = 1; i <= a; i++) { // 입력한 값의 반복문
for (int j = 1; j <= a - i; j++) { // 공백을 찍기 위한 반복문
System.out.print(" ");
}
for (int k = 0; k < i; k++) { // * 을 찍기 위한 반복문
System.out.print("*");
}
System.out.println(); // 마지막으로 줄바꿈!
}
}
}
앞에 풀었던 별찍기 - 1 과 비슷하지만
공백을 찍어야 하는 반복문을 하나 더 추가 해서 출력해야 한다.
반응형