시간이 촉박하게 풀 때는 잘 안 풀리고 죽을 것 같았는데, 다음 날 정신 멀쩡할 때 노트에 별 찍기 그림과 표를 그리면서 하니 잘 풀렸다. 이중 for문 하나로 별의 증가와 감소를 나타낼 수 없었다. 별의 증가와 감소를 나타내기 위해 이중 for문이 두 개 필요했고, 이중 for문 안에 공백을 찍는 for문도 별도로 필요했다.
내가 생각할 때 이 문제 풀이의 핵심은 1) 빠르게 이중 for문 두 개가 필요하다는 것을 알아채는 것이고 2) for문의 조건문을 적절히 결정하는 것이다.
package baekjunOnlineJudge;
import java.util.Scanner;
public class Bj_2446 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
for(int i=0; i<N; i++) {
for(int j=0; j<i; j++) {
System.out.print(" ");
}
for(int j=0; j<(N-i)*2-1; j++) {
System.out.print("*");
}
System.out.println();
}
for(int i=0; i<N-1; i++) {
for(int j=0; j<(N-i)-2; j++) {
System.out.print(" ");
}
for(int j=0; j<(i+1)*2+1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
'프로그래밍-학습기록 > 코딩테스트' 카테고리의 다른 글
백준 온라인 저지 | 10818 | 1차원 배열: 최소, 최대 (0) | 2020.07.23 |
---|---|
백준 온라인 저지 | 10996 | 별 찍기 - 21 (0) | 2020.07.22 |
백준 온라인 저지 | 10871 | 실습: 세 수 (0) | 2020.07.20 |
백준 온라인 저지 | 5543 | 실습: 상근날드 (0) | 2020.07.20 |
백준 온라인 저지 | 10039 | 실습: 평균점수 (0) | 2020.07.19 |