문제 출처: www.acmicpc.net/problem/2439
1. 코드
2. 풀이
예시로 먼저 설명을 하겠다. 5를 입력했을 때 위 그림과 같이 나오는데 패턴을 아래 표는 패턴을 정리한 것이다.
띄어쓰기 횟수 | * 횟수 | |
첫 번째 줄 | 4번 | 1번 |
두 번째 줄 | 3번 | 2번 |
세 번째 줄 | 2번 | 3번 |
네 번째 줄 | 1번 | 4번 |
다섯 번째 줄 | 0번 | 5번 |
그렇다면 아래 표와 같이 표현할 수 있다.
띄어쓰기 횟수 | * 횟수 | |
첫 번째 줄 | 5 - 1 = 4번 | 5 - (5 - 1) = 5 - 4 = 1번 |
두 번째 줄 | 5 - 2 = 3번 | 5 - (5 - 2) = 5 - 3 = 2번 |
세 번째 줄 | 5 - 3 = 2번 | 5 - (5 - 3) = 5 - 2 = 3번 |
네 번째 줄 | 5 - 4 = 1번 | 5 - (5 - 4) = 5 - 1 = 4번 |
다섯 번째 줄 | 5 - 5 = 0번 | 5 - (5 - 5) = 5 - 0 =5번 |
그래서 이것을 코드로 표현할 떼 변수와 반복문을 이용하여 해결할 수 있을 것이다.
int n;
cin >> n;
별의 줄을 입력받을 변수 n을 선언하고 cin을 통해 입력받는다.
for (int i = 1; i <= n; i++)
그리고 i라는 변수를 1로 초기화하고 n만큼 반복하게 한다. 여기서 i의 값을 1로 한 것은 변수 i를 계산에 이용할 때 조금 더 편하게 계산하기 위해 1로 초기화했다.
for (int j = 0; j < n - i; j++)
cout << " ";
그리고 j를 n - i만큼 반복한다. 반복한 횟수만큼 띄어쓰기를 해준다.
for (int j = 0; j < n - (n - i); j++)
cout << "*";
그리고 n - (n - i)만큼 *를 출력한다.
cout << endl;
마지막에 개행을 해주어서 줄을 구분시켜준다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 10952번: A+B - 5 [C++] (0) | 2020.12.18 |
---|---|
백준 알고리즘 10871번: X보다 작은 수 [C++] (0) | 2020.12.16 |
백준 알고리즘 11021번: A+B - 7 [C++] (0) | 2020.12.08 |
백준 알고리즘 2742번: 기찍 N [C++] (0) | 2020.12.07 |
백준 알고리즘 15552번: 빠른 A+B [C++] (0) | 2020.12.04 |