2038년, 바람의 나라 출시 42년이 지나, 주모 왈숙은 사냥터에 다람쥐를 생성하는 규칙을 바꾸기로 하였다.
DoD(DaramG on Demand)라 불리는 최첨단 기술을 통해 다람쥐가 적어도 플레이어 수보다 두 배가 되도록 유지해서 사람이 많을 때도 충분한 양의 다람쥐가 있게끔 하기로 했다.
가로 N칸, 세로 N칸으로 구성된 게임 화면에서 칸마다 캐릭터 또는 다람쥐가 있는지 주어질 때, 다람쥐가 모자란 지 판단해 모자란다면 필요한 다람쥐를 생성할 위치를 출력하는 프로그램을 작성하여라.
입력
첫 줄에 게임 화면의 크기 N이 주어진다. N은 5 이상 20 이하이다.
다음 N 줄에 걸쳐 N개의 문자가 공백 없이 주어진다. 문자는 다음 중 하나이다:
D
: 다람쥐가 있음C
: 플레이어 캐릭터가 있음.
: 빈칸임
출력
입력 형식에서 게임 화면을 출력한 것과 동일하게, 먼저 첫 줄에 N을 출력하고 그 다음 N줄에 걸쳐 N개의 문자를 공백 없이 사용하여 임의로 정한 다람쥐의 배치 상태를 출력한다. 문자는 D
, C
, .
중 하나가 되어야 한다.
새로운 다람쥐는 같이 D
문자를 사용하며, 위치는 수만 만족하면 아무 곳이나 지정하여도 무방하다.
다람쥐가 모자라지 않으면 새로운 다람쥐를 생성하지 않고 입력된 내용을 그대로 출력해야 한다. 반면 다람쥐가 모자라다면 출력된 다람쥐의 수가 적어도 플레이어 수보다 두 배가 되도록 하여야 한다.
다람쥐 및 플레이어 캐릭터들은 서로 겹쳐있을 수 없다. 입력은 필요로 하는 다람쥐를 항상 생성할 수 있음이 보장된다.
입력 예시 1
1 2 3 4 5 6 | 5 ..... ..... ..C.. ..... ..... | cs |
출력 예시 1
1 2 3 4 5 6 | 5 D.... ..D.. .C... ..... ..... | cs |
입력 예시 2
1 2 3 4 5 6 | 5 DD... .D... .D... .DD.. ..... | cs |
출력 예시 2
1 2 3 4 5 6 | 5 DD... .D... .D... .DD.. ..... | cs |
다람쥐만 있는 경우에는 플레이어 수가 0이므로, 다람쥐가 모자라지 않다. 따라서 새로운 다람쥐를 만들어서는 안 된다.
채점 규칙
모든 숨겨진 입력 데이터에 대해 정답이면 만점을 주고, 하나라도 틀리면 점수를 주지 않는다.
코드(Code)
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include <stdio.h> #include <time.h> #include <stdlib.h> #define _CRT_SECURE_NO_WARNINGS void ShowPan(int count,char arr[][100]); void RandomPan(int count,char arr[][100]); int main(void) { srand((int)time(NULL)); char arr[100][100] = { 1 }; int count = 0; scanf("%d", &count); for (int i = 0; i < count; i++) { for (int j = 0; j <= count; j++) { scanf("%c", &arr[i][j]); } } RandomPan(count, arr); ShowPan(count, arr); //printf("%d", arr[2][4]); } void ShowPan(int count,char arr[][100]) { for (int i = 0; i < count; i++) { for (int j = 0; j <= count; j++) { printf("%c", arr[i][j]); } } } void RandomPan(int count,char arr[][100]) { int PlayerNumber = 0; int Daramji = 0; int random = 0; for (int i = 0; i <= count; i++) { for (int j = 0; j <= count; j++) { if (arr[i][j] == 'C') { PlayerNumber++; } if (arr[i][j] == '\0') { arr[i][j] == '\n'; } } } Daramji = PlayerNumber * 2; for (int i = 0; i <= count; i++) { for (int j = 0; j <= count; j++) { random = rand() % 4; if (Daramji == 0) { continue; } if (random == 1) { if (arr[i][j] != 'C' && arr[i][j] != '\n') { arr[i][j] = 'D'; Daramji--; } } } } } | cs |
댓글