반응형
문제
풀이
n = 5일 때, 별 앞의 공백은 4, 3, 2, 1, 0개로 줄어드는 것을 볼 수 있다.
따라서, 공백을 출력하기 위한 for문은 아래와 같다.
for (int j = 1; j <= n - i - 1; j++) {
cout << " ";
}
위의 코드를 그림으로 풀이해둔 링크를 함께 첨부한다.
별의 개수는 1, 3, 5, 7, 9개로 홀수 개씩 늘어나고 있음을 확인할 수 있다.
따라서, 별이 늘어나는 규칙은 i * 2 + 1으로, 별을 출력하기 위한 for문은 아래와 같다.
for (int k = 1; k <= (i * 2 + 1); k++) {
cout << "*";
}
별 뒤의 공백은 따로 출력하지 않아도 되므로, for문 내에, 공백 출력을 위한 for문과 별 출력을 위한 for문 두 개를 만들면 된다.
코드
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 1; j <= n - i - 1; j++) {
cout << " ";
}
for (int k = 1; k <= (i * 2 + 1); k++) {
cout << "*";
}
cout << endl;
}
}
결과
반응형
'Programming > C++ - 백준' 카테고리의 다른 글
[백준] 2444번 : '별 찍기 -7' - (C++) (0) | 2023.04.18 |
---|---|
[백준] 2443번 : '별 찍기 -6' - (C++) (0) | 2023.04.18 |
[백준] 2441번 : '별 찍기 -4' - (C++) (0) | 2023.04.18 |
[백준] 2440번 : '별 찍기 -3' & 출력 형식이 잘못되었습니다 - (C++) (0) | 2023.04.18 |
[백준] 2439번 : '별 찍기 -2' - (C++) (1) | 2023.04.17 |
댓글