3035번: 스캐너백준/문제2024. 3. 14. 14:08
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/3035
언어 : Kotlin
문제 설명 :
상근이는 매일 아침 영자 신문을 학교에 가져와서 읽는다. 하지만, 상근이의 눈은 점점 나빠졌고, 더 이상 아침 신문을 읽을 수 없는 상황에 이르렀다. 상근이는 스캐너를 이용해서 글자를 확대한 다음에 보려고 한다.
신문 기사는 글자로 이루어진 R*C 행렬로 나타낼 수 있다. 글자는 알파벳과 숫자, 그리고 마침표로 이루어져 있다.
스캐너는 ZR과 ZC를 입력으로 받는다. 이렇게 되면, 스캐너는 1*1크기였던 각 문자를 ZR*ZC크기로 확대해서 출력해 준다.
신문 기사와 ZR, ZC가 주어졌을 때, 스캐너의 스캔을 거친 결과를 구하는 프로그램을 작성하시오.
입력 :
첫째 줄에 R, C, ZR, ZC가 주어진다. R과 C는 1과 50 사이의 정수이고, ZR과 ZC는 1과 5 사이의 정수이다.
다음 R개 줄에는 신문 기사가 주어진다.
출력 :
스캐너에 스캔된 결과를 총 R*ZR개 줄에 걸쳐서 C*ZC개 문자씩 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
3 3 1 2 .x. x.x .x. |
..xx.. xx..xx ..xx.. |
3 3 2 1 .x. x.x .x. |
.x. .x. x.x x.x .x. .x. |
풀이 :
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val (r, c, zr, zc) = readLine().split(" ").map { it.toInt() }
var arr = arrayOf<String>()
repeat(r) {
arr += readLine()
}
val sb = StringBuilder()
for (i in arr.indices) {
var temp = ""
arr[i].forEach {
for (j in 1 .. zc) {
temp += it
}
}
for (j in 1 .. zr) {
sb.appendLine(temp)
}
}
bw.write(sb.toString())
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
11719번: 그대로 출력하기 2 (0) | 2024.03.15 |
---|---|
4740번: 거울, 오! 거울 (2) | 2024.03.14 |
1141번: 접두사 (0) | 2024.03.14 |
25757번: 임스와 함께하는 미니게임 (0) | 2024.03.13 |
2596번: 비밀편지 (0) | 2024.03.13 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!