2019. 5. 14. 23:01 백준 문제풀이
[백준/c] 9626번 - 크로스워드 퍼즐
코드
#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.#
#.#.#.#.
.#.#.#.#
'백준 문제풀이' 카테고리의 다른 글
[백준/c] 11586번 - 지영 공주님의 마법 거울 (0) | 2019.05.13 |
---|---|
[백준/c] 10798번 - 세로읽기 (0) | 2019.05.13 |
[백준/c] 2738번 - 행렬 덧셈 (0) | 2019.05.12 |
[백준/c] 1159번 - 농구 경기 (0) | 2019.05.12 |
[백준/c] 10804번 - 카드 역배치 (0) | 2019.05.11 |