반응형
앞선 별 찍기보다 조금 복잡한 문제이다. 규칙을 유추해 보자면 5를 입력했을 때 9 7 5 3 1 3 5 7 9 순으로 별이 찍혔다.
다만 이렇게 별이 찍힌다면 단순히 2n -1, 2n-3 ... 1 ...2n-3, 2n-1 순으로 별을 찍으면 되겠지만 예제 출력에 보면 빈칸이 앞에 붙어있다. 먼저 코드를 보면
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
for (int i = n - 1; i > 0; i--) {
for (int j = 1; j < n - i; j++) {
System.out.print(" ");
}
for (int j = 0; j <= 2 * i; j++) {
System.out.print("*");
}
System.out.println("");
}
for (int i = 0; i < n; i++) {
for (int j = 1; j < n - i; j++) {
System.out.print(" ");
}
for (int j = 0; j <= 2 * i; j++) {
System.out.print("*");
}
System.out.println("");
}
}
}
조금 복잡해 보이지만 감소하는 부분(첫번째 for문) 과 증가하는 부분(두번째 for문)으로 나누어 보면 편하다.
감소하는 부분에서 빈칸이 0,1,2,3 순으로 들어갔기 때문에 "*"을 입력하는 for문 앞에 새로운 for문을 넣어서 빈칸을 넣어주고, 마찬가지로 두번째 for문에도 4,3,2,1,0 순으로 빈칸을 넣어주면 된다.
반응형
'Java > 백준알고리즘' 카테고리의 다른 글
백준알고리즘 #14681 사분면 고르기 java (0) | 2020.03.30 |
---|---|
백준알고리즘 #10996 별 찍기 -21 java (0) | 2020.03.30 |
백준알고리즘 #2523 별 찍기 - 13 java (0) | 2020.03.30 |
백준알고리즘 #5543 상근날드 java (0) | 2020.03.30 |
백준알고리즘 #10039 평균 점수 java (0) | 2020.03.30 |