반응형
https://www.acmicpc.net/problem/2441
별을 역순으로 오른쪽으로 정렬하여 출력한다.
출력해야하는 라인의 개수 i는 입력 N개이므로, for문을 사용하여 반복해준다.
for (int i = 1; i <= N; i++) {
/*
각 라인마다 별을 출력하는 코드 여기에 작성
*/
cout << endl; //한 줄을 출력한 뒤에는 한 줄 내리기
}
각 라인의 별은 오른쪽으로 정렬하여 출력해야하는데,
이때 왼쪽의 공백 영역과 오른쪽의 별 영역으로 나누어 생각할 수 있다.
왼쪽의 공백 영역의 경우, 각 라인에서 출력해야할 공백의 수는 다음과 같다.
(입력 N) - (오른쪽 별의 개수)
이때 오른쪽 별의 개수는 아래와 같으며,
왼쪽 공백의 수는 반대로 1부터 라인 i까지의 개수보다 하나 더 작다.
예를 들어 넘버 4인 라인의 경우, 공백은 1, 2, 3 으로 모두 3개 출력해야한다.
//왼쪽 공백영역
for (int k = 1; k <= i-1; k++) {
cout << " ";
}
오른쪽의 별 영역의 경우, 해당 라인의 넘버에서 N까지의 개수와 동일하다.
예를 들어, N이 5일 때 라인의 넘버가 2일 경우, 2, 3, 4, 5 로 별은 모두 4개 출력해야한다.
//오른쪽 별 영역
for (int j = i; j <= N; j++) {
cout << "*";
}
[BOJ-2441.cpp]
#include <iostream>
using namespace std;
int main() {
int N = 0;
cin >> N;
for (int i = 1; i <= N; i++) {
for (int k = 1; k <= i-1; k++) {
cout << " ";
}
for (int j = i; j <= N; j++) {
cout << "*";
}
cout << endl;
}
}
반응형
'Online-Judge > Baekjoon' 카테고리의 다른 글
[BOJ] C++ 2443번 별 찍기 - 6 (0) | 2021.05.16 |
---|---|
[BOJ] C++ 2442번 별 찍기 - 5 (0) | 2021.05.16 |
[BOJ] C++ 2440번 별 찍기 - 3 (0) | 2021.05.15 |
[BOJ] C++ 2439번 별 찍기 - 2 (0) | 2021.05.15 |
[BOJ] C++ 2438번 별 찍기 - 1 (0) | 2021.05.14 |
댓글