πŸ’― | λ°±μ€€/πŸ˜€ | Bronze

[Kotlin, B3] λ°±μ€€ 3009번 λ„€ 번째 점

immgga 2024. 9. 2. 21:07
λ°˜μ‘ν˜•

좜처: unsplash.com

 

λ„€ 번째 점(3009번)

Bronze 3

#κ΅¬ν˜„ #κΈ°ν•˜ν•™

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

 

문제 λ‚΄μš©

 

 

문제 μ ‘κ·Ό

3개의 점의 μ’Œν‘œκ°€ μ£Όμ–΄μ§ˆ λ•Œ, 좕에 ν‰ν–‰ν•œ μ§μ‚¬κ°ν˜•μ„ λ§Œλ“€κΈ° μœ„ν•΄ ν•„μš”ν•œ λ„€ 번째 점을 좜λ ₯ν•΄μ•Ό ν•œλ‹€.

λ‹€λ₯΄κ²Œ λ§ν•˜λ©΄, μ–‘ 변이 ν‰ν–‰ν•œ μ§μ‚¬κ°ν˜•μ„ λ§Œλ“€κΈ° μœ„ν•΄ ν•„μš”ν•œ λ„€ 번째 점을 ꡬ해야 ν•œλ‹€.

 

μž…λ ₯ μ˜ˆμ œλ“€μ„ 보닀 보면 μ‰½κ²Œ κ·œμΉ™μ„ 찾을 수 μžˆλ‹€.

μž…λ ₯ 예제 1은 λ‹€μŒκ³Ό κ°™λ‹€.

5 5
5 7
7 5

// μ •λ‹΅: 7 7

 

예제 μž…λ ₯ 2

30 20
10 10
10 20

// μ •λ‹΅: 30 10

 

μœ„ 2개의 μž…λ ₯ 예제의 정닡을 보면 μ„Έ μ’Œν‘œμ—μ„œ 1κ°œμ”© λ“€μ–΄ μžˆλŠ” μ’Œν‘œκ°’μ΄ 정닡이 λ˜λŠ” 것을 λ³Ό 수 μžˆλ‹€.

μ–‘ 변이 ν‰ν–‰ν•œ μ •μ‚¬κ°ν˜•μ„ λ§Œλ“€κΈ° μœ„ν•΄μ„œλŠ” ν•œ μ’Œν‘œμ— xμΆ•κ³Ό ν‰ν–‰ν•œ μ’Œν‘œ, yμΆ•μœΌλ‘œ ν‰ν–‰ν•œ μ’Œν‘œ 1κ°œμ”©μ΄ ν•„μš”ν•˜λ‹€.

κ·Έλ ‡κΈ° λ•Œλ¬Έμ— μ–‘ 변이 ν‰ν–‰ν•œ μ •μ‚¬κ°ν˜•μ„ λ§Œλ“€κΈ° μœ„ν•΄ μ–‘ x, yμ’Œν‘œ μˆ˜κ°€ λ™μΌν•œ κ°’ 2κ°œμ”©μœΌλ‘œ 이루어져야 ν•œλ‹€.

 

κ·Έλž˜μ„œ 결둠은 μž…λ ₯받은 μ’Œν‘œμ˜ 수 쀑에 3개의 x, yμ’Œν‘œλ“€ 쀑 μœ μΌν•˜κ²Œ λ‹€λ₯Έ x, y값을 κ΅¬ν•˜λ©΄ λœλ‹€.

 

 

문제 ν•΄κ²° μ½”λ“œ

더보기
import java.io.BufferedReader
import java.io.InputStreamReader

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val pointsX = mutableMapOf<Int, Int>()
    val pointsY = mutableMapOf<Int, Int>()

    for (i in 1 .. 3) {
        val point = readLine().split(" ").map { it.toInt() }
        if (!pointsX.containsKey(point[0])) pointsX[point[0]] = 1
        else pointsX[point[0]] = pointsX[point[0]]!! + 1

        if (!pointsY.containsKey(point[1])) pointsY[point[1]] = 1
        else pointsY[point[1]] = pointsY[point[1]]!! + 1
    }

    println("${pointsX.filter { it.value == 1 }.keys.first()} ${pointsY.filter { it.value == 1 }.keys.first()}")
}

 

문제 풀이

x, y의 κ°’μ˜ 개수λ₯Ό μ„ΈκΈ° μœ„ν•΄ map을 μ΄μš©ν•΄ μ£Όμ—ˆλ‹€. keyλ₯Ό κ°’μœΌλ‘œ, valueλ₯Ό 개수둜.

map에 값을 μ €μž₯ν•˜κ³  λ‚˜μ„œ, mapμ—μ„œ value값이 1인 keyλ₯Ό 좜λ ₯ν•˜λ©΄ 끝.

 

 

문제 ν•΄κ²° κ³Όμ •

μ‰¬μ›Œμš”.

κ·œμΉ™ 찾기도 쉽고, ν‘ΈλŠ” 방법도 쉽닀.

728x90
λ°˜μ‘ν˜•