EvergreenTree97 / Rokorithm

πŸ’ͺ 1 λΆ€ν„° μ‹œμž‘ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜
0 stars 0 forks source link

2023/07/07 #43

Open EvergreenTree97 opened 1 year ago

EvergreenTree97 commented 1 year ago

1946 μ‹ μž…μ‚¬μ› silver 1

EvergreenTree97 commented 1 year ago

1트 - μ‹€νŒ¨

λ¨Όμ € μ„œλ₯˜λ‘œ μ •λ ¬ν•œ ν›„, 인터뷰 μ μˆ˜λ“€μ„ λΉ„κ΅ν•œλ‹€. 이 κ³Όμ •μ—μ„œ NlogN + N^2 의 μ‹œκ°„λ³΅μž‘λ„λ₯Ό μ†Œλͺ¨ν•˜κ²Œ λ˜μ–΄ μ‹œκ°„μ΄ˆκ³Όκ°€ λ°œμƒ

fun main() {
    with(System.`in`.bufferedReader()) {
        val T = readLine().toInt()
        val sb = StringBuilder()
        repeat(T) { tc ->
            val N = readLine().toInt()
            val arr = Array(N) {
                val (document, interview) = readLine().split(" ").map { it.toInt() }
                Score(document, interview)
            }.sortedBy { it.document }
            var count = 1 // μ„œλ₯˜ 1등은 ν”„λ¦¬νŒ¨μŠ€
            for (i in 1 until arr.size) {
                var flag = true
                for (j in 0..i) {
                    if(arr[j].interview < arr[i].interview){
                        flag = false
                    }
                }
                if(flag) count++
            }
            sb.appendLine(count)
        }
        print(sb.toString())
    }
}

data class Score(
    val document: Int,
    val interview: Int,
)
EvergreenTree97 commented 1 year ago

2트 - 성곡 (κ°œλ… μ°Έκ³ ) μ •λ ¬ + 그리디

정렬을 μ μš©ν•œ μƒνƒœμ—μ„œ 각 μ›μ†Œλ“€μ„ 이쀑 포문으둜 νƒμƒ‰ν•˜λŠ” 것은 어리석은 μΌμ΄μ˜€λ‹€. 이미 μ„œλ₯˜ 순으둜 λ‚˜μ—΄λ˜μ–΄ 있기 λ•Œλ¬Έμ—, λ’€μͺ½ μˆœμ„œλ‘œ 갈수둝 μ•žμ˜ λ“±μˆ˜λ³΄λ‹€ 무쑰건 빨라야 살아남을 수 μžˆλ‹€. ν•œλ²ˆμ˜ 포문을 λŒλ©΄μ„œ 맀번 λΉ λ₯Έ λ“±μˆ˜λ‘œ κ°±μ‹ ν•˜κ³ , λ’€λ‘œ 갈수둝 κ·Έ λΉ λ₯Έ λ“±μˆ˜λ³΄λ‹€ λŠ¦λ‹€λ©΄ νƒˆλ½ν•˜λŠ” ν˜•νƒœλ‘œ κ°€μ„œ O(N)으둜 끝낼 수 있게 λœλ‹€.

μ§κ΄€μ μœΌλ‘œ λ³΄μ΄λŠ” λŒ€λ‘œ ν•΄κ²°ν•˜λ € ν•˜μ§€ 말자, μ •λ ¬λ˜μ–΄ μžˆλ‹€λŠ” 점을 λ– μ˜¬λ¦¬λ©΄ 이처럼 더 μ΅œμ ν™” μ‹œν‚¬ 수 μžˆλŠ” λ°©μ•ˆμ„ μ°Ύμ•„λ‚Ό 수 μžˆμ„ 것이닀.

var count = 1 // μ„œλ₯˜ 1등은 ν”„λ¦¬νŒ¨μŠ€
            var min = arr[0].interview
            for (i in 1 until arr.size) {
                if(min > arr[i].interview){
                    count++
                    min = arr[i].interview
                }
            }