코드

 

#include <stdio.h>

char cross(int x, int y)
{
	if((x+y)%2 == 0){
		return '#';
	}
	else{
		return '.';
	}
}

int main(void)
{
	char c[10][10];
	char f[20][20];
	int n, m, u, l, r, d;
	scanf("%d %d", &n, &m);
	scanf("%d %d %d %d", &u, &l, &r, &d);
	for(int i = 0; i < n; i++){
		scanf("%s", c[i]);
	}
	for(int q = 0; q < n + u + d; q++){
		for(int w = 0; w < l + m + r; w++){
			f[q][w] = cross(q, w);
		}
	}
	for(int e = 0; e < n; e++){
		for(int t = 0; t < m; t++){
			f[e + u][t + l] = c[e][t];
		}
	}
	for(int a = 0; a < n + u + d; a++){
		for(int b = 0; b < l + m + r; b++){
			printf("%c", f[a][b]);
		}
		printf("\n");
	}
	return 0;
}

 

 

문제

 

창영이는 크로스워드 퍼즐을 매우 좋아한다. 세계에 존재하는 모든 크로스워드 퍼즐을 다 푼 창영이는 이제 퍼즐을 예쁘게 장식하려고 한다.

퍼즐은 총 M×N개의 글자로 이루어져 있다. 창영이는 위에 U개, 왼쪽에 L개, 오른쪽에 R개, 아래에 D개 두께로 글자를 추가해 퍼즐을 장식하려고 한다.

장식은 #와 .로 이루어져 있으며, 체스판과 같은 형태로 장식한다. 크로스워드 퍼즐을 체스판 위에 올려놓는 다고 생각을 하면 되며, 빨간 칸에 #를 채운다. 아래 예제를 참고하는 것이 좋다.

 

입력

 

첫재 줄에 M과 N이 주어진다. (1 ≤ M, N ≤ 10)

둘째 줄에 U, L, R, D (0 ≤ U, L, R, D ≤ 5)가 주어진다.

다음 M개 줄에는 크로스워드 퍼즐을 나타내는 N개의 글자가 주어진다.

 

출력

 

예쁘게 장식한 크로스워드 퍼즐을 출력한다.

 

예제 입력 1

 

4 4

2 2 2 2

honi

oker

nera

irak

 

예제 출력 1

 

#.#.#.#.

.#.#.#.#

#.honi#.

.#oker.#

#.nera#.

.#irak.#

#.#.#.#.

.#.#.#.#

 

문제 - https://www.acmicpc.net/problem/9626

Posted by hsoo3844