문제 링크: https://www.acmicpc.net/problem/2439
2439번: 별 찍기 - 2
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
www.acmicpc.net
1. 필요한 생각
- 단순히 별찍기가 아니다 오른쪽으로 정렬된 별찍기임을 생각하고
- 공백이 내려갈 수록 한칸씩 빠지는 반면, 별은 내려갈 수록 한개씩 증가됨을 생각하자
2. 코드로 이해
#include <stdio.h>
int main(void) {
int N;
scanf("%d",&N);
for(int i=0 ; i<N ; i++) // 줄의 갯수 for문
{
for(int j=i+1 ; j<N ; j++)
// i+1 인 이유는 만약 5개 입력시 첫번째 줄에는 공백 4개가 입력되기 때문
printf(" ");
for(int k=0 ; k<=i ; k++)
// 가장 위의 for문에 영향을 받음 첫째줄의 경우 별 1개, 둘째줄의 경우 별2개...
printf("*");
printf("\\n");
}
return 0;
}
3. 느낀점
- 사실 처음에 오른쪽 정렬을 어떻게 처리해야할지 감이 잘 안잡혔다.
- 하지만, 공백이 줄어드는 만큼 별의 갯수가 증가된다는 생각을 가지고 접근하니 비교적 쉽게 해결 되었다.
'백준 문제 정리' 카테고리의 다른 글
백준 2751 수 정렬하기 2 (C언어) (1) | 2023.09.24 |
---|---|
백준 10989 수 정렬하기 3 (C언어) (0) | 2023.09.10 |
백준 1152 단어의 개수 (C언어) (0) | 2023.09.03 |
백준 10809 알파벳 찾기 (C 언어) (0) | 2023.09.02 |
백준 11718번 그대로 출력하기 (C언어) (0) | 2023.09.02 |