티스토리 뷰

algorithm'''problem solve

[백준]2447-별 찍기 10

JunHwa Park 2019. 8. 12. 22:26

입력과 출력을 보고 추론해서 코드를 짜는 문제다.

일단 백준 풀이 올리는 거 오랜만.. 요즘 안드로이드 공부해서..

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <cstring>
using namespace std;
 
void star(char** ary, int xpos, int ypos, int size);
 
int main()
{
    int input;
    cin >> input;
    char** ary = new char*[input];
    for (int i = 0; i < input; i++) {
        ary[i] = new char[input + 1];
        memset(&ary[i][0], ' ', input);
        ary[i][input] = 0;
    }
 
    star(ary, 00, input);
 
    for (int i = 0; i < input; i++)
        cout << ary[i] << endl;
}
 
void star(char** ary, int xpos, int ypos, int size) {
    if (size == 1) {
        ary[xpos][ypos] = '*';
        return;
    }
 
    int ssize = size / 3;
 
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (i != 1 || j != 1)
                star(ary, xpos + i * ssize, ypos + j * ssize, ssize);
        }
    }
    return;
}
cs

일단 정답부터 보이면 위의 코드..

 

대충 봐도 규칙이 있는데, 일단 27이 입력되니 폭, 너비가 27인 출력이 나왔고, 너비와 폭을 각각 3 등분하여 9개의 조각이 나온다.

 

가운데 조각은 비었고, 나머지 8개 조각은 또 9개 조각으로 나뉘고 가운데는 빈다.

 

여기까지만 말하면 코드 보고도 어느정도 이해가 갈 것..

 

근데 여기서 백준에 제출할 때 컴파일 에러가 나서 뭐지 하다가..

아...

 

비주얼 스튜디오에서 컴파일 할 때는 잘 돌아갔는데, 백준에서 왜 안 돌아가나 했는데..

 

memset이 cstring에 들어있는데 아주 친절하게도 비주얼스튜디오가 자동으로 넣어줘서 눈치를 못 챘다..

앞으로는 이런 것도 신경 쓸 수 있도록 노력..

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함