ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kotlin 🍬 λ°±μ€€ 14단계 :: 7785 번
    2024. 3. 2. 18:20
    λ°˜μ‘ν˜•

    νšŒμ‚¬μ— μžˆλŠ” μ‚¬λžŒ

    문제   |

      μƒκ·Όμ΄λŠ” 세계적인 μ†Œν”„νŠΈμ›¨μ–΄ νšŒμ‚¬ κΈ°κΈ€μ—μ„œ μΌν•œλ‹€. 이 νšŒμ‚¬μ˜ κ°€μž₯ 큰 νŠΉμ§•μ€ 자유둜운 μΆœν‡΄κ·Ό μ‹œκ°„μ΄λ‹€. λ”°λΌμ„œ, 직원듀은 λ°˜λ“œμ‹œ 9μ‹œλΆ€ν„° 6μ‹œκΉŒμ§€ νšŒμ‚¬μ— μžˆμ§€ μ•Šμ•„λ„ λœλ‹€.

      각 직원은 μžκΈ°κ°€ 원할 λ•Œ μΆœκ·Όν•  수 있고, μ•„λ¬΄λ•Œλ‚˜ 퇴근할 수 μžˆλ‹€.

      μƒκ·Όμ΄λŠ” λͺ¨λ“  μ‚¬λžŒμ˜ μΆœμž…μΉ΄λ“œ μ‹œμŠ€ν…œμ˜ 둜그λ₯Ό 가지고 μžˆλ‹€. 이 λ‘œκ·ΈλŠ” μ–΄λ–€ μ‚¬λžŒμ΄ νšŒμ‚¬μ— λ“€μ–΄μ™”λŠ”μ§€, λ‚˜κ°”λŠ”μ§€κ°€ κΈ°λ‘λ˜μ–΄μ Έ μžˆλ‹€. λ‘œκ·Έκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, ν˜„μž¬ νšŒμ‚¬μ— μžˆλŠ” λͺ¨λ“  μ‚¬λžŒμ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

     

    μž…λ ₯   |

      첫째 쀄에 λ‘œκ·Έμ— 기둝된 μΆœμž… 기둝의 수 n이 주어진닀. (2 N $10^{6}$) λ‹€μŒ n개의 μ€„μ—λŠ” μΆœμž… 기둝이 μˆœμ„œλŒ€λ‘œ 주어지며, 각 μ‚¬λžŒμ˜ 이름이 주어지고 "enter"λ‚˜ "leave"κ°€ 주어진닀.

      νšŒμ‚¬μ—λŠ” 동λͺ…이인이 μ—†μœΌλ©°, λŒ€μ†Œλ¬Έμžκ°€ λ‹€λ₯Έ κ²½μš°μ—λŠ” λ‹€λ₯Έ 이름이닀. μ‚¬λžŒλ“€μ˜ 이름은 μ•ŒνŒŒλ²³ λŒ€μ†Œλ¬Έμžλ‘œ κ΅¬μ„±λœ 5κΈ€μž μ΄ν•˜μ˜ λ¬Έμžμ—΄μ΄λ‹€.

     

    좜λ ₯   |

      ν˜„μž¬ νšŒμ‚¬μ— μžˆλŠ” μ‚¬λžŒμ˜ 이름을 사전 순의 μ—­μˆœμœΌλ‘œ ν•œ 쀄에 ν•œ λͺ…μ”© 좜λ ₯ν•œλ‹€.

     

     

    풀이  |

      이름과 μΆœμž… 기둝을 λ°›μ•„ enterλ©΄ 이름을 μΆ”κ°€, leaveλ©΄ μ œκ±°ν•΄μ€€λ‹€.

     

     

    λ‹΅μ•ˆ  |

    import java.io.BufferedReader
    import java.io.InputStreamReader
    
    fun main() {
        val br = BufferedReader(InputStreamReader(System.`in`))
    
        val N = br.readLine().toInt()
        val nameList = ArrayList<String>()
        
        repeat(N) {
            val (name, state) = br.readLine().split(" ")
            if (state == "enter") {
                nameList.add(name)
            } else if (state == "leave" && nameList.contains(name)) {
                nameList.remove(name)
            }
        }
        
        val sortedName = nameList.sortedDescending()
    
        sortedName.forEach { nm -> println(nm) }
    }

     

    ^ μ‹œκ°„μ΄ˆκ³Όκ°€ λ°œμƒν•œ μ½”λ“œ

     

    arrayλ₯Ό Set으둜 λ³€ν™˜ν•˜μ—¬ ν•΄κ²°ν•˜μ˜€λ‹€.

    fun main() {
        val N = readLine()!!.toInt()
        val nameList = HashSet<String>()
        
        repeat(N) {
            val (name, state) = readLine()!!.split(" ")
            if (state == "enter") {
                nameList.add(name)
            } else if (state == "leave" && nameList.contains(name)) {
                nameList.remove(name)
            }
        }
        
        val sortedName = nameList.sortedDescending()
    
        sortedName.forEach { nm -> println(nm) }
    }
    λ°˜μ‘ν˜•

    λŒ“κΈ€

Designed by Tistory.