https://www.acmicpc.net/problem/3035
3035번: 스캐너
첫째 줄에 R, C, ZR, ZC가 주어진다. R과 C는 1과 50 사이의 정수이고, ZR과 ZC는 1과 5 사이의 정수이다. 다음 R개 줄에는 신문 기사가 주어진다.
www.acmicpc.net
🔔 문제 :
(1<= R,C <= 50)인 R, C, (1 <= ZR, ZC <=5)인 ZR, ZC가 주어집니다.
R은 행 , C는 열 ZR은 확대한 행, ZC는 확대한 열인 입력값이 주어집니다.
이후에 R 개의 문자열이 주어집니다.
ZR, ZC크기에 따라서 문자를 확대하여 출력하면 되는 문제입니다.
예를 들어
3 3 1 2
.x.
x.x
.x.
3(R)*3(C) 크기의 신문기사를 1(ZR), 2(ZC) 크기의 신문기사로 확대시켜 출력하면 되는 문제입니다.
출력값은
..xx..
xx..xx
..xx..
으로 이루어집니다.
🔔 Kick Point :
우선 각각의 행(R)마다 반복되는 문자 열(C) 개를 ZC개 넣어줍니다.
예를 들어, *X* 인 경우 ZC = 3 이다. 할때, ***XXX*** 을 변수값으로 명시해줍니다.
이후, 똑같이 명시된 string을 ZR번 반복해서 출력하면 됩니다.
이를 R번 반복하면 됩니다.
1. C개번의 문자를 각각 ZC개 만큼 string에 넣어줍니다.
2. 이를 ZR번 출력해줍니다. (줄바꿈 첨가하여)
3. 1~2번 과정을 R번 반복해줍니다.
🔔 Code :
#include <iostream>
#include <string>
using namespace std;
int main() {
int r, c, zr, zc;
cin >> r >> c >> zr >> zc;
for (int k = 0; k < r; k++) {
string str;
for (int i = 0; i < c; i++) {
char ch; cin >> ch;
for (int j = 0; j < zc; j++) {
str += ch;
}
}
for (int i = 0; i < zr; i++) {
cout << str << endl;
}
}
}