[백준] 명령 프롬프트 (1032)(kotlin)

문제 설명

백준 1032번 문제 링크

입력 및 출력

» 입력

첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 알파벳과 “.” 그리고 “?”로만 이루어져 있다.

» 출력

첫째 줄에 패턴을 출력하면 된다.

예제 입출력(테스트케이스)

입력 출력
3
config.sys
config.inf
configures
config????

문제 풀이1

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    val files = mutableListOf<String>()
    val n = readLine().toInt()

    if (n == 1) {
        println(readLine())
        return
    }
    else {
        repeat(n) {
            files.add(readLine())
        }
    }

    var check = BooleanArray(files[0].length) { true }
    for (i in files[0].indices) for (j in 1 until n ) {
        if (check[i]) check[i] = files[0][i] == files[j][i]
    }

    println(
        check.mapIndexed { i: Int, b: Boolean ->
            if (b) files[0][i]
            else '?'
        }.joinToString("")
    )
}