반응형
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
예제 입력
5
예제 출력
*
**
***
****
*****
정답 코드(c언어)
#include <stdio.h>
int main(){
int count;
scanf("%d", &count);
for(int i = 0; i < count; i++) {
for(int j = count - i - 1; j > 0; j--)
printf(" ");
for(int j = 0; j < i + 1; j++)
printf("*");
if(i != count - 1)
printf("\n");
}
return 0;
}
겉보기에는 별 찍기 1의 출력을 좌우 반전시키는 문제지만 결국엔 공백이라는 문자가 추가되는 것이나 마찬가지이니 코드 또한 변형시킨다기보다는 추가된다고 봐야 한다.
때문에 별을 찍는 for문 이전에 공백을 찍는 for문을 하나 더 추가시켰다.
별을 하나 찍어야 하는 라인에는 공백을 네 개,
별을 두 개 찍어야 하는 라인에는 공백을 세 개.
이런 식으로 이어나가면 * 문자가 오른쪽으로 정렬된 콘솔을 볼 수 있게 된다.
https://www.acmicpc.net/problem/2439
반응형
'알고리즘 > c,c++' 카테고리의 다른 글
c언어 백준코드 알고리즘 2438번 별 찍기1 코드 (0) | 2020.01.12 |
---|---|
백준코드 알고리즘 2739번 구구단 c언어 코드 (0) | 2020.01.11 |