[BOJ] 10996 - 별 찍기 21

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

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 차례대로 별을 출력한다.

예제 입력 1 

1

예제 출력 1 

*

예제 입력 2 

2

예제 출력 2 

*
 *
*
 *

예제 입력 3 

3

예제 출력 3 

* *
 *
* *
 *
* *
 *

예제 입력 4 

4

예제 출력 4 

* *
 * *
* *
 * *
* *
 * *
* *
 * *

코드

#include <iostream>
using namespace std;
void st(int n){
    int dBig = n/2;
    int dSmall = n - dBig;
    if(dBig < dSmall){
        int tmp;
        tmp = dBig; dBig = dSmall; dSmall = tmp;
    }
    for(int i=0; i<n; i++){
        for(int j=0; j<=dBig; j++cout << '*' << ' ';
        cout << endl;
        for(int j=0; j<dSmall; j++cout << ' ' << '*';
        cout << endl;
    }
}
main(){
    int n; cin >> n; st(n);
}
cs

홀수인 경우가 문제였다. 2와 1로 나눠서 출력해야 하는데 1과 2로 나눠서 원하는 결과를 얻지 못하는 것이었다. 3이면 2,1로, 5이면 3,2로 나누는 경우를 생각하다가 그냥 dBig, dSmall 변수를 비교해서 다시 sort시켰다.

댓글 없음:

Powered by Blogger.