[알고리즘/백준] 2438번 :: 별 찍기 - 1 (C++)

문제 ✍🏻 :: [2438번] 별 찍기 - 1

(초록색 글자 클릭 시 문제로 이동)

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제


알고리즘 (접근방법) 💻

N을 입력받아 N행만큼 반복한다. 이때, 별은 첫째줄에 1개, 둘째 줄에 2개, ... N번째 줄에 N개씩 출력이 된다.

그림에서 볼 수 있듯이, i행은 N만큼 줄 바꿈이 되고, j는 i만큼 별(*)을 찍는다.
i는 줄바꿈 담당, j는 별찍기 담당이라 생각하면 좋다.

반복문은 다음과 같다.

//N번만큼 반복
for (int i = 1; i <= N; i++) {
	
    //i행에서 i행만큼 별 출력
    for(int j = 1; j <= i; j++) {
    	cout << "*";
    }
    
    //해당 행이 끝나면 줄바꿈
    cout << "\n";
}

반복문을 해석해보자면,
i=1일 때, 1번째 줄. j=i이므로 별 1개, 해당 행이 끝났으므로 줄바꿈
i=2일때,2번째 줄. j=i이므로, 별 2개, 해당 행이 끝났으므로 줄바꿈
...
i=N일때, N번째 줄. j=i이므로, 별 i개(N개),해당 행이 끝났으므로 줄바꿈

💡전체 코드💡

#include <iostream>
using namespace std;

int main()
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	int N, i, j;
	cin >> N;
    
	//입력받은 N만큼 반복
	for (i = 1; i <= N; i++) {
    	
        //i행에서는 i개만큼의 별이 출력
		for (j = 1; j <= i; j++) {
			cout << "*";
		}
        //i행이 끝날 때, 줄바꿈
		cout << "\n";
	}
	return 0;
}

회고 🤔

for문을 2개 쓰는건가?했는데 정말 2개 쓰는거라 신기..
쉽게 마무리했다!

좋은 웹페이지 즐겨찾기