반응형

백준 1032번 문제입니다. (solved.ac) 기준 브론즈 1 문제입니다.

https://www.acmicpc.net/problem/1032

문제

문제 접근

파일의 이름들을 입력받고, 해당하는 이름들의 파일들이 모두 검색 결과로 나타날 수 있도록 dir 패턴을 만드는 문제입니다.

파일 이름의 길이, 개수는 모두 50이하 이므로 완전탐색을 해도 충분히 시간적 여유가 있다고 판단하여 완전탐색을 진행하였습니다.

파일 이름의 길이는 모두 동일하므로 첫 번째 파일의 길이를 기준으로 잡고 모든 파일들의 동일 인덱스(0부터 끝까지)를 탐색합니다.

모든 파일의 동일한 인덱스의 문자가 같다면 해당 문자는 dir패턴에 포함될 수 있다는 뜻이고 하나라도 다르다면 해당 부분은 ?처리를 하도록 구현하였습니다.

정답 코드

fun main() {

    // 파일의 개수
    val n = readln().toInt()
    // 파일들이 담길 리스트
    val fileList = mutableListOf<String>()
    var answer = ""

    repeat(n) {
        val file = readln()
        fileList.add(file)
    }

    // 파일의 길이(파일의 길이는 모두 일정)
    val length = fileList[0].length

    // 완전탐색으로 모든 인덱스를 탐색.
    // 모든 인덱스의 문자가 같다면 해당 문자를 그대로 사용
    // 하나라도 다르다면 ?를 사용
    for (row in 0 until length) {

        var isSame = true
        var lastChar = fileList[0][row]

        for (col in 0 until fileList.size) {

            val curChar = fileList[col][row]

            if (lastChar != curChar) {
                isSame = false
                break
            }
        }

        if (isSame) answer += lastChar
        else answer += "?"

    }

    println(answer)
}

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기