본문 바로가기
백준

백준 Java - 2444번 별찍기-7

by 사장님나빠여 2021. 12. 30.

드디어 혼자 힘으로 아무도 안 도와주고 어제 했지만 이제는 남 꺼 안 보고 생각대로 풀어냈다...!

다른 분들은 코드 리뷰 이렇게 안 하겠지만 처음 백준 풀면서 내 것이 된 게 처음이라 양해를 일단 부탁드립니다..


문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

예제입력

예제출력

더보기
더보기
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

 


풀이

예제 입력값 5를 변하지 않게 하기위해 DIAMOND라는 이름의 상수로 초기화하였다

 

첫번째 큰 for문의 i는 안의 for문들에게 영향을 줘야되기 때문에 0이 아니라 1로 초기화했고

5번 반복해야되기 때문에 조건식을 DIAMOND+1로 두었다.

 

i가 1~5일 때 공백은 4~0개가 찍혀야되기 때문에 1-1 for문에서 j값은 1로 초기화하고

조건식을 반복문이 돌수록 점점 작아지게 해야하기 때문에 고정값 상수 DIAMOND-i이하로 하여

공백이 1씩 줄어 4~0이 되게 하였다.

 

1-2 for문에서 i값이 1 증가 할 때마다 별의 개수가 1~9까지 2씩 증가해야 되기 때문에 홀수를 찍기 위해서

조건식을 i*2-1미만으로 하고 k를 0으로 초기화했다.

 

두번째 큰 for문은 역삼각형을 만들기 위해 4번 반복이므로 DIAMOND이하가 아닌 미만으로 조건식을 잡았다.

 

2-1 for문에서는 l값이 1~4가 될 때 공백이 똑같이 1~4개 찍혀야 하므로

첫 반복때는 1이 나오도록 m값을 1, 조건식을 l이하루 둬서 값을 같게 하였다.

 

2-2 for문에서는 별의 개수가 7→1로 2씩 줄어드는 홀수가 나오게 하기 위해서

조건식은 DIAMOND*2-1인 9 미만으로 두고 반복될 때마다 n값을 증가시키기 위해

l*2로 초기화 하여 별의 개수를 맞췄다.

'백준' 카테고리의 다른 글

백준 Java - 2442번 별찍기-5 삼각형  (0) 2021.12.29

댓글