반응형
똑같은 별 찍기 문제이지만 별이 오른쪽정렬한 상태로 출력이 된다.
이를 위해선 별이 찍히기 전까지는 빈칸을 출력해주어야 한다.
위와같은 문제는 빈칸부분과 별 부분을 나누어 생각해주면 편하다.
결국에는 n x n 만큼을 출력해주는 부분이므로
M을 입력했을 때 n 줄에 M-n만큼은 빈칸을, n만큼은 별을 출력해주면 된다.
for문 안에 for문을 2개 만들어서 코드를 짜보았다.
for문 안의 첫번째 for문은 빈칸을, 두번째 for문은 *을 출력하는 코드이다.
5를 입력받은 경우
첫번째 for문에서는
i = 1, j = 5,4,3,2,1 이 되는데 조건을 만족하는 j는 5,4,3,2 로 4개이므로 4칸의 빈칸이 생긴 후
두번째 for문으로 넘어가서 *이 한개 찍힌다.
한바퀴를 돌고 나면
i = 2 , j = 5,4,3,2,1 에서 조건을 만족하는 j는 5,4,3 이므로 3개의 빈칸이 생기고, 이어서 별이 2개 찍히게 된다.
사뭇 복잡해 보일 수 있지만 천천히 경우의 수를 따져가며 풀다보면 쉽게 해결할 수 있다.
위와 같은 방식으로 역순으로 찍는 문제이다.
앞선 문제와 마찬가지로 빈칸을 넣는 for문의 초기값을 1, 범위를 j < i 까지로 설정하고
*을 찍는 for문의 초기값을 n 범위를 j >= i 까지로 바꾸어주면 쉽게 해결이 가능하다
반응형
'C > 백준알고리즘' 카테고리의 다른 글
[C] 백준알고리즘 #2444 #2446 별 찍기 - 7, 9 (다이아몬드, 모래시계) (0) | 2021.01.12 |
---|---|
[C] 백준알고리즘 #2442 #2443 별 찍기 - 5 , 6 (트리, 역트리) (0) | 2021.01.12 |
[C] 백준알고리즘 #2438 #2440 별 찍기 - 1 , 3 (0) | 2021.01.11 |
[C] 백준알고리즘 #11021 #11022 A+B - 7, 8 (0) | 2021.01.11 |
[C] 백준알고리즘 #2741 #2742 N 찍기 (0) | 2021.01.11 |