C/백준알고리즘

[C] 백준알고리즘 #2439 #2441 별 찍기 - 2, 4

Sehyeok20 2021. 1. 11. 10:42
반응형

백준알고리즘 #2439 별 찍기 - 2 문제

똑같은 별 찍기 문제이지만 별이 오른쪽정렬한 상태로 출력이 된다.

이를 위해선 별이 찍히기 전까지는 빈칸을 출력해주어야 한다.

위와같은 문제는 빈칸부분과 별 부분을 나누어 생각해주면 편하다.

결국에는 n x n 만큼을 출력해주는 부분이므로

M을 입력했을 때 n 줄에 M-n만큼은 빈칸을, n만큼은 별을 출력해주면 된다.

for문 안에 for문을 2개 만들어서 코드를 짜보았다.

#2439 정답

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개 찍히게 된다.

 

사뭇 복잡해 보일 수 있지만 천천히 경우의 수를 따져가며 풀다보면 쉽게 해결할 수 있다.

 

백준알고리즘 #2441 별찍기 - 4

위와 같은 방식으로 역순으로 찍는 문제이다.

#2441 정답

앞선 문제와 마찬가지로 빈칸을 넣는 for문의 초기값을 1, 범위를 j < i 까지로 설정하고

*을 찍는 for문의 초기값을 n 범위를 j >= i 까지로 바꾸어주면 쉽게 해결이 가능하다

반응형