• 목록 (128)
    • Android (62)
    • Back-End (2)
    • Java (3)
    • Kotlin (16)
    • CS (7)
    • 개발 서적 (12)
    • 문제 풀이 (26)

최근 글

티스토리

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
MJ_94

한 우물만 파는 기술 블로그

[백준/Kotlin/1269] 대칭 차집합
문제 풀이

[백준/Kotlin/1269] 대칭 차집합

2022. 6. 2. 16:34

문제

 

 

1269번: 대칭 차집합

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

www.acmicpc.net

자연수를 원소로 갖는 공집합이 아닌 두 집합 A와 B가 있다. 이때, 두 집합의 대칭 차집합의 원소의 개수를 출력하는 프로그램을 작성하시오. 두 집합 A와 B가 있을 때, (A-B)와 (B-A)의 합집합을 A와 B의 대칭 차집합이라고 한다.

예를 들어, A = { 1, 2, 4 } 이고, B = { 2, 3, 4, 5, 6 } 라고 할 때,  A-B = { 1 } 이고, B-A = { 3, 5, 6 } 이므로, 대칭 차집합의 원소의 개수는 1 + 3 = 4개이다.

입력

첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어진다. 각 집합의 원소의 개수는 200,000을 넘지 않으며, 모든 원소의 값은 100,000,000을 넘지 않는다.

출력

첫째 줄에 대칭 차집합의 원소의 개수를 출력한다.

입력 예제

3 5
1 2 4
2 3 4 5 6

출력 예제

4

import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.*
import kotlin.collections.HashMap

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {

    val (A, B) = readLine().split(" ").map { it.toInt() }
    val map = HashMap<Int, Int>()
    var count = 0

    var tokenizer = StringTokenizer(readLine(), " ")
    repeat(A) {
        val key = tokenizer.nextToken().toInt()
        map[key] = map.getOrDefault(key, 0) + 1
    }

    tokenizer = StringTokenizer(readLine(), " ")
    repeat(B) {
        val key = tokenizer.nextToken().toInt()
        map[key] = map.getOrDefault(key, 0) + 1
    }

    map.forEach { entry ->
        if (entry.value == 1) {
            count++
        }
    }

    println(count)
}

BufferedReader를 안쓰고 Scanner를 사용하면 메모리는 3배차이, 실행시간은 2배 차이 난다.

저작자표시 비영리 변경금지 (새창열림)

'문제 풀이' 카테고리의 다른 글

[백준/Kotlin/18870] 좌표 압축  (0) 2022.06.07
[백준/Kotlin/11478] 서로 다른 부분 문자열의 개수  (0) 2022.06.03
[백준/Kotlin/1764] 듣보잡  (0) 2022.06.02
[백준/Kotlin/10816] 숫자 카드2  (0) 2022.05.31
[백준/Kotlin/1620] 나는야 포켓몬 마스터 이다솜  (0) 2022.05.31
    '문제 풀이' 카테고리의 다른 글
    • [백준/Kotlin/18870] 좌표 압축
    • [백준/Kotlin/11478] 서로 다른 부분 문자열의 개수
    • [백준/Kotlin/1764] 듣보잡
    • [백준/Kotlin/10816] 숫자 카드2
    MJ_94
    MJ_94
    안드로이드, 개발 관련 기술 블로그

    티스토리툴바