Open EvergreenTree97 opened 1 year ago
보이는 대로 문제를 푸는 습관을 버려야 할 듯 하다.
기존 코드는 A-B와 B-A를 구해서 합쳤지만, 좀 더 생각했다면 A+B - 2ANDB의 공식을 활용해서 원소들을 이용한 연산을 한번 줄일 수 있었다.
fun main() {
with(System.`in`.bufferedReader()) {
val (N, M) = readLine().split(" ").map(String::toInt)
val a = readLine().split(" ").map(String::toInt).toSet()
val b = readLine().split(" ").map(String::toInt).toSet()
print(a.size+b.size-(a.getIntersectionCount(b) * 2))
}
}
fun <T> Set<T>.getIntersectionCount(other: Set<T>): Int{
return count {
other.contains(it)
}
}
100MS를 개선시켰다.
1181 단어 정렬 silver 4
이번에는 정렬 방법 중 Comparator를 구현하여 사용해 보았다. 사용해본 결과 정렬 방식을 다음과 같이 사용하는 것이 좋을 것 같다.
정렬이 간단한 경우(오름차순, 내림차순)
sort(), sortByDecending()
사용sortBy{}
사용기본 자료형에서 정렬 기준이 조금 복잡한 경우
object SortWord: Comparator<String>
으로 정렬 기준을 제공프로퍼티가 2개 이상인 클래스에서 정렬 기준이 복잡한 경우
Comparable
을 구현 받아서 내부에 compare
을 override
1269 대칭 차집합 silver 4