반응형
백준 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)
}
반응형
최근댓글