새소식

💻 Programming (프로그래밍)/C++ | 백준

[C++][백준] - 스캐너 (3035번)

  • -
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;
		}
	}
}

 


 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.