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

[Kotlin, S4] ๋ฐฑ์ค€ 16471๋ฒˆ ์ž‘์€ ์ˆ˜ ๋‚ด๊ธฐ

by immgga 2024. 11. 17.
๋ฐ˜์‘ํ˜•

์ถœ์ฒ˜: unsplash.com

 

์ž‘์€ ์ˆ˜ ๋‚ด๊ธฐ(16471๋ฒˆ)

Silver 4

#๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ #์ •๋ ฌ

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

 

๋ฌธ์ œ ๋‚ด์šฉ

 

๋ฌธ์ œ ์ ‘๊ทผ

์‚ฌ์žฅ๋‹˜์ด ๋ฝ‘์€ ์นด๋“œ์—์„œ ์ด๊ธฐ๊ธฐ ์œ„ํ•ด ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์นด๋“œ๋ฅผ ๊ณ„์† ๋ƒˆ์„ ๋•Œ, ๋” ์ด์ƒ ์ด๊ธฐ๋Š” ์ˆ˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ, ์ด๊ธด ํšŸ์ˆ˜์— 2๋ฅผ ๊ณฑํ•ด์„œ ์นด๋“œ์˜ ๊ฐœ์ˆ˜๋ณด๋‹ค ํฌ๋‹ค๋ฉด YES๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์•„๋‹ˆ๋ฉด NO๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

์ž…๋ ฅ ์˜ˆ์ œ๋ฅผ ์˜ˆ๋กœ ๋“ค๋ฉด,

2 1 3 5 6
1 1 3 2 5

 

์•„๋ž˜๊ฐ€ ์‚ฌ์žฅ๋‹˜์˜ ์นด๋“œ๊ณ , ์œ„๊ฐ€ ์ฃผ์–ธ์˜ ์นด๋“œ์ผ ๋•Œ, ์‚ฌ์žฅ๋‹˜์ด ์นด๋“œ๋ฅผ ํฐ ์ˆœ์„œ๋Œ€๋กœ ๋ฝ‘๊ฒŒ ๋˜๋ฉด 5, 3, 2, 1, 1์˜ ์ˆœ์„œ๋Œ€๋กœ ๋ฝ‘๊ฒŒ ๋œ๋‹ค.

์ฃผ์–ธ์ด ์นด๋“œ๋ฅผ ๋ฝ‘์•„ ์‚ฌ์žฅ๋‹˜์„ ์ด๊ธฐ๋ ค๋ฉด,

์‚ฌ์žฅ๋‹˜์ด 5๋ฅผ ๋ฝ‘์•˜์„ ๋•Œ, 5๋ณด๋‹ค ์ž‘์€ ์นด๋“œ์ธ 1, 2, 3 ์ค‘์—์„œ ์ œ์ผ ํฐ 3์„ ๊ณ ๋ฅด๊ณ ,

์‚ฌ์žฅ๋‹˜์ด 3์„ ๋ฝ‘์œผ๋ฉด ์ฃผ์–ธ์ด๋Š” 2๋ฅผ,

์‚ฌ์žฅ๋‹˜์ด 2๋ฅผ ๋ฝ‘์œผ๋ฉด ์ฃผ์–ธ์ด๋Š” 1์„ ๋ฝ‘๊ฒŒ ๋˜๋ฉด ๋จผ์ € 3๋ฒˆ์„ ์ด๊ฒผ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋จธ์ง€ 2ํŒ์€ ์ ธ๋„ ์ตœ์ข…์ ์œผ๋กœ ์ด๊ธฐ๊ฒŒ ๋œ๋‹ค.

 

๊ฒฐ๋ก 

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

 

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

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

fun main() {
    val bf = BufferedReader(InputStreamReader(System.`in`))
    val n = bf.readLine().toInt()
    val me = bf.readLine().split(" ").map { it.toInt() }.toMutableList()
    val enemy = bf.readLine().split(" ").map { it.toInt() }.toMutableList()
    me.sort()
    enemy.sortDescending()

    var cardIndex = me.lastIndex
    var point = 0
    for (ei in 0 until enemy.size) {
        while (me[cardIndex] >= enemy[ei]) {
            cardIndex--
            if (cardIndex == -1) break
        }

        if (cardIndex == -1) {
            if (point * 2 > n) println("YES")
            else println("NO")

            return
        } else {
            me[cardIndex] = 100001
            point++
        }
    }

    println("YES")
}

 

๋ฌธ์ œ ํ’€์ด

์ฃผ์–ธ์˜ ์นด๋“œ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ, ์‚ฌ์žฅ๋‹˜์˜ ์นด๋“œ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

๊ทธ๋Ÿผ ์‚ฌ์žฅ๋‹˜์€ ํฐ ์นด๋“œ๋ถ€ํ„ฐ ๋ฝ‘๊ฒŒ ๋œ๋‹ค.

์ฃผ์–ธ์ด๋Š” ์ž์‹ ์ด ์ด๊ธธ ์ˆ˜ ์žˆ๋Š” ์นด๋“œ๋“ค ์ค‘ ์ œ์ผ ํฐ ๊ฒƒ์„ ๋ฝ‘์•„์„œ ์ด๊ธด๋‹ค.

ํ•œ ๋ฒˆ ์“ด ์นด๋“œ๋Š” 100001๋กœ ๋ณ€๊ฒฝํ•ด ์ฃผ๊ณ , point๋ฅผ ๋Š˜๋ ค ์ค€๋‹ค.

์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉด cardIndex๊ฐ€ -1์ด ๋˜๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ์—๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ๊ฐ€ ์ง„๋‹ค๋Š” ๋œป์ด๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ๊นŒ์ง€ ์ด๊ธด point๋ฅผ ์ด์šฉํ•ด ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  return ํ•œ๋‹ค.

 

return์ด ์•ˆ ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์ฃผ์–ธ์ด๊ฐ€ ์ „์Šน์„ ํ•˜๋Š” ๊ฒฝ์šฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์กฐ๊ฑด YES๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

 

 

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

์•„์ด๋””์–ด ์ž์ฒด๋ฅผ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€ ์•Š์•„์„œ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•œ ๋ฌธ์ œ์ด๋‹ค.

์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์—์„œ ๊ฐœ์ธ์ฐจ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ.

๋ฌธ์ œ์— ํžŒํŠธ๊ฐ€ ์žˆ์–ด์„œ ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฒŒ ์‰ฌ์› ๋‹ค.

์ฒด๊ฐ ๋‚œ์ด๋„: Silver 4

728x90
๋ฐ˜์‘ํ˜•