1. 문제 상세
https://www.acmicpc.net/problem/2439
2. 문제 접근
2438번 별 찍기 문제처럼 줄 수를 입력받고 이중 반복문을 사용하여 별을 찍는것은 동일하다.
하지만 이번에는 별을 출력할 때 오른쪽으로 정렬하여 출력해야 한다.
따라서 총 줄 갯수가 t 라고 하고, n 번 줄에 n 개의 별이 출력되기 때문에, n 번 줄에 들어갈 공백은 t - n 개이다.
그만큼 공백을 출력하고 해당 줄에 맞는 개수의 별을 출력하자.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
for(int i = 1; i <= t; i++) {
for(int j = 0; j < t - i; j++) cout << " ";
for(int j = 0; j < i; j++) cout << "*";
cout << "\n";
}
}
정수형 변수 t 를 선언하고, cin 으로 줄 수를 입력받아 t 에 저장한다.
for문을 사용하여 i 가 1부터 t 보다 작거나 같을 때, 1씩 더하며 반복하도록 한다.
이번에는 반복문 안에 두 개의 반복문을 사용한다.
첫 번째 for문은 j 가 0 부터 t - i 보다 작을 때 1씩 더하며 반복하도록 한다.
반복에서는 cout 으로 공백 " " 을 출력한다.
두 번째 for문은 j 가 0 부터 i 보다 작을 때 1씩 더하며 반복하도록 한다.
반복에서는 별(*)을 하나 출력하도록 한다.
안쪽 for문들이 끝나면 개행문자를 출력해 줄바꿈한다.
4. 성능 확인
5. 마무리
이중 반복문을 사용해보았다. 각 반복문의 카운터 변수를 활용해 반복 횟수를 유동적으로 변경할 수 있다.
'백준 - 단계별로 풀어보기 > 반복문' 카테고리의 다른 글
[백준] 10951번 : A+B - 4 | C++ (0) | 2023.09.20 |
---|---|
[백준] 10952번 : A+B - 5 | C++ (0) | 2023.09.20 |
[백준] 2438번 : 별 찍기 | C++ (0) | 2023.09.20 |
[백준] 11022번 : A+B - 8 | C++ (0) | 2023.09.20 |
[백준] 11021번 : A+B - 7 | C++ (0) | 2023.09.20 |