728x90
https://www.acmicpc.net/problem/1764
Code
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 (N, M) = readLine().split(" ").map { it.toInt() }
val temp = HashSet<String>()
val result = mutableListOf<String>()
repeat(N){
val name = readLine()
temp.add(name)
}
repeat(M){
val name = readLine()
if (name in temp) result.add(name)
}
bw.write("${result.size}\n")
result.sorted().forEach {
bw.write(it + "\n")
}
bw.flush()
bw.close()
}
이전에 Python으로 이 문제를 풀었었다.
그러다 모종의 이유로 이 문제를 다시 풀게 됐는데 지금은 Kotlin을 사용하니 Kotlin으로 풀어봤다.
꽤나 전에 풀었던 문제라 기억이 안나서 처음 푸는 느낌으로 풀었더니 저번과 같이 시간 초과가 발생했다.
그래서 HashSet을 사용해서 시간을 줄였다.
이전에는 왜 시간이 줄어드는지 모르는 채로 사용했다면, 이제는 HashSet을 이해하여 왜 시간이 줄어드는지 알고 사용하니까 한층 뿌듯했다.
728x90