본문 바로가기
Programming/C++ - 백준

[백준] 2442번 : '별 찍기 -5' - (C++)

by 지구코드 2023. 4. 18.
반응형


문제


풀이

n = 5일 때, 별 앞의 공백은 4, 3, 2, 1, 0개로 줄어드는 것을 볼 수 있다.

 

따라서, 공백을 출력하기 위한 for문은 아래와 같다.

 

for (int j = 1; j <= n - i - 1; j++) {
	cout << " ";
}

 

위의 코드를 그림으로 풀이해둔 링크를 함께 첨부한다.

 

 

[백준] 2439번 : '별 찍기 -2' - (C++)

문제 풀이 중첩 for문(2중 반복문)과 if문을 이용하여, (j n; for (int i = 1; i

jigoo-log.tistory.com


별의 개수는 1, 3, 5, 7, 9개로 홀수 개씩 늘어나고 있음을 확인할 수 있다.

 

따라서, 별이 늘어나는 규칙은 i * 2 + 1으로, 별을 출력하기 위한 for문은 아래와 같다.

 

for (int k = 1; k <= (i * 2 + 1); k++) {
	cout << "*";
}

 

별 뒤의 공백은 따로 출력하지 않아도 되므로, for문 내에, 공백 출력을 위한 for문과 별 출력을 위한 for문 두 개를 만들면 된다.


코드

#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;

	for (int i = 0; i < n; i++) {
		for (int j = 1; j <= n - i - 1; j++) {
			cout << " ";
		}

		for (int k = 1; k <= (i * 2 + 1); k++) {
			cout << "*";
		}

		cout << endl;
	}
}

결과

 

 

2442번: 별 찍기 - 5

첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.

www.acmicpc.net

 

반응형

댓글