๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ฏ | ๋ฐฑ์ค€/๐Ÿ™‚ | Silver

[Kotlin, S4] ๋ฐฑ์ค€ 2358๋ฒˆ ํ‰ํ–‰์„ 

by immgga 2024. 9. 26.

์ถœ์ฒ˜: unsplash.com

 

ํ‰ํ–‰์„ (2358๋ฒˆ)

Silver 4

#์ž๋ฃŒ ๊ตฌ์กฐ #์ •๋ ฌ #ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•œ ์ง‘ํ•ฉ๊ณผ ๋งต

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

 

๋ฌธ์ œ ๋‚ด์šฉ

 

 

๋ฌธ์ œ ์ ‘๊ทผ

2๊ฐœ ์ด์ƒ์˜ ์ ์„ ์ง€๋‚˜๋Š” ์„ ๋ถ„์—์„œ x์ถ• ๋˜๋Š” y์ถ•์— ํ‰ํ–‰ํ•œ ์„ ๋ถ„์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” ๋ฌธ์ œ.

์„ ๋ถ„์˜ ๊ตฌ์„ฑ์ด 2๊ฐœ ์ด์ƒ์˜ ์ ์„ ์ง€๋‚  ์ˆ˜๋„ ์žˆ๊ณ , ํ•œ ์ขŒํ‘œ์— ์ ์ด ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

// ์„ ๋ถ„์˜ ๊ตฌ์„ฑ์— 2๊ฐœ ์ด์ƒ์˜ ์ ์ด ์“ฐ์ด๋Š” ๊ฒฝ์šฐ
4
1 0
2 0
3 0
4 0

์ •๋‹ต: 1

// ํ•œ ์ขŒํ‘œ์— ์—ฌ๋Ÿฌ ์ ์ด ์žˆ๋Š” ๊ฒฝ์šฐ
2
1 1
1 1

์ •๋‹ต: 2

์ฒซ ๋ฒˆ์งธ case๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ฒ˜์Œ ์ฝ์—ˆ์„ ๋•Œ๋Š” 2๊ฐœ ์ด์ƒ์˜ ์ ์„ ์ง€๋‚˜๋Š” ์„ ๋ถ„์ด๋ผ๋Š” ๊ฒƒ์„ ๋ชป ๋ณด๊ณ  2๊ฐœ์˜ ์ ์„ ์ง€๋‚˜๋Š” ์„ ๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ ์™œ 1๊ฐœ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ํ—ท๊ฐˆ๋ ธ๋‹ค.

case 1์˜ ๊ฒฝ์šฐ์—๋Š” ์  4๊ฐœ๋ฅผ ์—ฐ๊ฒฐํ•œ y์ถ•๊ณผ ํ‰ํ–‰ํ•œ ์„ ๋ถ„ 1๊ฐœ๋งŒ ์กด์žฌํ•˜๊ฒŒ ๋œ๋‹ค.

case 2์˜ ๊ฒฝ์šฐ์—๋Š” ์ขŒํ‘œ๊ฐ€ 1๊ฐœ์ด์ง€๋งŒ 2๊ฐœ์˜ ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌดํ•œ๋Œ€์˜ ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค.

๋ฌดํ•œ๋Œ€์˜ ๊ฒฝ์šฐ๋“ค ์ค‘์—์„œ x, y์ถ•๊ณผ ํ‰ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ 1๊ฐ€์ง€์”ฉ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋‹ต์ด 2์ด๋‹ค.

 

case๋“ค์„ ๋ณด๊ณ  x ๋˜๋Š” y ๊ฐ’์ด ๊ฐ™์€ ์• ๋“ค์„ ๋ฌถ์œผ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ ํ•˜๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๋ฌถ์€ ์ขŒํ‘œ๋“ค์˜ ๊ฐœ์ˆ˜๊ฐ€ 2๊ฐœ๋ณด๋‹ค ๋งŽ์œผ๋ฉด ์„ ๋ถ„์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 2๊ฐœ ์ด์ƒ์ธ ๊ฒฝ์šฐ์—๋งŒ ์นด์šดํŠธ๋ฅผ ๋Š˜๋ ค์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด์šฉํ–ˆ๋‹ค.

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ์ฝ”๋“œ

๋”๋ณด๊ธฐ
import java.io.BufferedReader
import java.io.InputStreamReader

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val points = readLine().toInt()
    val xMap = mutableMapOf<Int, Int>()
    val yMap = mutableMapOf<Int, Int>()

    for (i in 0 until points) {
        val (coordinateX, coordinateY) = readLine().split(" ").map { it.toInt() }

        if (!xMap.containsKey(coordinateX)) xMap[coordinateX] = 1
        else xMap[coordinateX] = xMap[coordinateX]!! + 1

        if (!yMap.containsKey(coordinateY)) yMap[coordinateY] = 1
        else yMap[coordinateY] = yMap[coordinateY]!! + 1
    }

    var answer = 0
    for (x in xMap) {
        if (x.value >= 2) answer++
    }

    for (y in yMap) {
        if (y.value >= 2) answer++
    }
    println(answer)
}

 

๋ฌธ์ œ ํ’€์ด

์ž…๋ ฅ๋œ ๊ฐ™์€ x ๋˜๋Š” y์ขŒํ‘œ๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ํ™•์ธํ•  map์„ ์ƒ์„ฑํ•ด ์ฃผ์—ˆ๋‹ค.

์ž…๋ ฅ๊ฐ’์—์„œ x, y์ขŒํ‘œ๊ฐ’์ด ๊ฐ™์€ ์ขŒํ‘œ๊ฐ€ 2๊ฐœ ์ด์ƒ ์žˆ์œผ๋ฉด ํ‰ํ–‰์„ ์˜ ๊ฐœ์ˆ˜(answer)๋ฅผ ๋Š˜๋ ค ์ค€๋‹ค.

 

๋ฌธ์ œ ์ ‘๊ทผ์˜ case๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด map์ด ๊ตฌ์„ฑ๋˜๊ฒŒ ๋œ๋‹ค.

case 1
case 2

case 1์˜ ๊ฒฝ์šฐ๋Š” ๊ฐ x์˜ ๊ฐœ์ˆ˜๊ฐ€ 2๊ฐœ๊ฐ€ ๋„˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„ ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค.

case 2์˜ ๊ฒฝ์šฐ๋Š” x, y์˜ ๊ฐœ์ˆ˜๊ฐ€ 2๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ‰ํ–‰์„ ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •

๋ฌธ์ œ๋ฅผ ์ฒ˜์Œ ๋ดค์„ ๋•Œ๋Š” ๋ณ„์ƒ๊ฐ ์—†์ด ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ, ๋ฐ˜๋ก€๋ฅผ ์ฐพ์•„๋ณด๋ ค๊ณ  ๊ฒŒ์‹œํŒ์— ๋“ค์–ด๊ฐ€๋‹ˆ๊นŒ ๊ณผ๊ฑฐ์— ์ด ๋ฌธ์ œ์— ๋ถˆ๋งŒ์ด ์ƒ๋‹นํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

๊ฒŒ์‹œํŒ์—์„œ ์  ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์ด์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ํ•œ ์ขŒํ‘œ์— ์ ์ด ์—ฌ๋Ÿฌ ๊ฐœ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์งœ๊ฒŒ ๋˜์—ˆ๋‹ค.

๊ฒŒ์‹œํŒ์„ ๋ณด๊ณ  ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์ž์„ธํžˆ ์ฝ๊ณ  ๋‚˜์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ์ง€ ๋ชปํ•˜๋ฉด silver 4 ์ด์ƒ์˜ ๋‚œ์ด๋„๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ ๊ฐ™๋‹ค.

728x90