[백준 Baekjoon 알고리즘]

[백준 Baekjoon 알고리즘] 10996번 별 찍기 - 21 문제

꾸러기현우 2020. 9. 14. 16:51
#include <iostream>

using namespace std;

int main() {

	int N;
	cin >> N;
	
	for (int i = 0; i < 2 * N; i++) {       //i=0이 1번째 줄 ... 설명하기 좀 헷갈리네요 담엔 i=1로 찍을께요
		if (N == 1) { cout << "*"; return 0; }   //1을 입력해 줬을때 1개가 찍히게 해줍니다
		else if (i % 2 == 0) {         //홀수번째 줄에 별을 찍는 경우를 if문으로 빼줍니다
			if (N % 2 == 0) {         //입력 변수가 짝수일 땐 변화 없으므로 범위에 변화 없이 별을 찍음.
				for (int j = 0; j < N / 2; j++) {
					cout << "* ";     //별 + 공백을 찍어줍니다.
				}
			}
			else {                       //그림을 보시면 N에 홀수를 넣었을때 홀수번째 줄 별이 추가된걸 알 수 있음
				for (int j = 0; j < N / 2 + 1; j++) { //입력 변수가 홀수일 때 홀수번째 줄 별을 추가로 찍어줍니다.
					cout << "* ";       
				}
			}
			cout << "\n";
		}
		else if (i % 2 == 1) {      //짝수번째 줄 별을 찍는 경우를 if문으로 빼줍니다
			if (N % 2 == 0) {		//입력 변수가 짝수일 경우에 별을 추가로 찍어줍니다.
				for (int j = 0; j < N / 2 ; j++) {
					cout << " *";
				}
			}
			else {
				for (int j = 0; j < N / 2; j++) {   //입력 변수가 홀수일 땐 변화 없으므로 범위에 변화 x
					cout << " *";
				}
			}
			cout << "\n";
			}
		}
	}

 

www.acmicpc.net/problem/10996

 

10996번: 별 찍기 - 21

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

www.acmicpc.net

 

 

설명이 많이 복잡하네요 ... 홀수,짝수번째 줄 따로 찍는거만 잘 구분하면 될것 같습니다!