[백준][C++] 2441번 별찍기-4
별찍기-4
문제 링크
분석
입력으로 주어지는 정수 N으로 다음과 같이 별을 출력해야 합니다.
1 번째 줄에는 *가 N개
2 번째 줄에는 공백 1개와 *가 N-1개
3 번째 줄에는 공백 2개와 *가 N-2개
N 번째 줄에는 공백 N-1개와 *가 1개
즉, 첫 줄에서 가장 많은 별을 출력하고, 줄이 내려갈수록 별의 개수가 하나씩 감소하는 내림차순 형태를 가집니다.
이 외에도 별들은 항상 오른쪽 끝에 몰아서 출력돼야 합니다.
해당 문제는 별찍기-3문제에서 오른쪽 정렬하는 형태입니다.
대표적으로 이중 반복문으로 풀이할 수 있습니다.
풀이
#include <iostream>
using namespace std;
int main()
{
int N;
cin >> N;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < i; j++)
{
cout << " ";
}
for (int j = 0; j < N - i; j++)
{
cout << "*";
}
cout << endl;
}
}
성능 요약
시간 복잡도는 $O(n^2)$입니다.
-바깥 반복문 $O(n)$ -안쪽 반복문 $O(n)$ -$O(n) \times O(n)$
공간 복잡도는 고정된 크기의 상수 공간을 사용하기 때문에 $O(1)$입니다.
메모리: 2020 KB
시간: 4 ms
댓글남기기