M,N 짜리 signal이 주어졌을 때 K배만큼 확대해서 출력하는 문제다.
해법
K가 3배면
X.
.X
↓
XXX...
XXX...
XXX...
...XXX
...XXX
...XXX
이렇게 확대된다.
확대된 배열의 좌표와 원래 배열의 좌표의 상관관계를 보면
(0,0) (0,1)
(1,0) (1,1)
↓
(0,0) (0,1) (0,2) (0,3) (0,4) (0,5)
(1,0) (1,1) (1,2) (1,3) (1,4) (1,5)
(2,0) (2,1) (2,2) (2,3) (2,4) (2,5)
(3,0) (3,1) (3,2) (3,3) (3,4) (3,5)
(4,0) (4,1) (4,2) (4,3) (4,4) (4,5)
(5,0) (5,1) (5,2) (5,3) (5,4) (5,5)
인데 잘 살펴보면 (바뀐 후의 좌표)/K == (바뀌기 전의 좌표) 인 것을 알 수 있다.
따라서 i<M*K, j<N*K 를 돌면서 signal[i/K][j/K]를 출력하면 된다.
#include <iostream> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int m, n, k; char s[10][11]; cin >> m >> n >> k; for (int i = 0; i < m; ++i) cin >> s[i]; for (int i = 0; i < m*k; ++i) { for (int j = 0; j < n*k; ++j) { cout << s[i / k][j / k]; } cout << '\n'; } return 0; } | cs |
'BOJ' 카테고리의 다른 글
14468 소가 길을 건너간 이유 2 (0) | 2018.11.10 |
---|---|
14467 소가 길을 건너간 이유 1 (0) | 2018.11.10 |
14174 Block Game (0) | 2018.11.10 |
14173 Square Pasture (0) | 2018.11.10 |
11978 Mowing the Field (Bronze) (0) | 2018.11.10 |