Uknow's Lab.
article thumbnail

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

 

1269번: 대칭 차집합

첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어

www.acmicpc.net

 

난이도 : 실버 4
태그 : 자료구조, 해시를 사용한 집합과 맵, 트리를 사용한 집합과 맵

 

 

설명

자바/코틀린의 자료 구조중 하나인 집합(set)을 사용하맨 꽤 쉽게 풀 수 있습니다.

 

소스코드

fun main():Unit = with(System.`in`.bufferedReader()) {
    readLine()
    val a = readLine().split(" ").map { it.toInt() }.toHashSet()
    val b = readLine().split(" ").map { it.toInt() }.toHashSet()

    // union - 합집합, subtract - 차집합
    println(a.subtract(b).union(b.subtract(a)).size)
}

 

toHashSet()은 List를 HashSet()으로 변환하는 메소드입니다.

set1.subtract(set2)은 set1에서 set2를 뺀 차집합 연산을 메소드이며,

set1.union(set2)는 set1과 set2의 합집합 연산을 하는 메소드입니다.

 

 

후기

set을 사용하면 꽤 간단하게 풀 수 있었던 문제였습니다.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.