728x90
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
예제 출력
*
**
***
****
*****
풀이
#include <iostream>
using namespace std;
int main()
{
int num;
cin >> num;
for (int i = 1; i <= num; i++)
{
// 먼저 최대 숫자만큼 공백을 찍는다고 생각
for (int j = num; j >= 1; j--)
{
// j 만큼 공백을 찍다가 j가 층 수인 i보다 같아질 때 부터
// 남은 갯수만큼은 별을 찍는다.
if (j <= i) cout << "*";
else cout << " ";
}
cout << "\n";
}
}
1. num 이라는 최대 층 수를 입력받는다.
2. i는 층수만큼 돌기 위한 사이클(현재 층수를 의미), j 는 현재 돌고 있는 층수에서 몇번 찍었는지 확인하는 사이클
3. j 가 층수 num 에서부터 거꾸로 내려오면서, 현재 층수 i 와 같아지는 시점부터 별을 출력
결과
5
*
**
***
****
*****
728x90
'백준 알고리즘 단계별 풀이 (문제 수) > 반복문 (14)' 카테고리의 다른 글
[C++] A + B / 두 수의 합 출력 - 0 입력 시 종료 (0) | 2022.06.17 |
---|---|
[C++] 배열에서 x보다 작은 숫자 출력하기 (0) | 2022.06.17 |
[C++] 별 찍기 - 1 (0) | 2022.06.17 |
[C++] 두 수의 합을 더 예쁘게 출력하기 (0) | 2022.06.17 |
[C++] 번호 붙여서 두 수의 합 출력 (0) | 2022.06.17 |