πŸ“– Algorithm/πŸ“ λ°±μ€€

Kotlin 🍬 λ°±μ€€ 14단계 :: 10815 번

λ²ŒκΏ€μ˜€μ†Œλ¦¬πŸ¦‘ 2024. 2. 29. 16:25
λ°˜μ‘ν˜•

숫자 μΉ΄λ“œ

문제   |

  숫자 μΉ΄λ“œλŠ” μ •μˆ˜ ν•˜λ‚˜κ°€ μ ν˜€μ Έ μžˆλŠ” μΉ΄λ“œμ΄λ‹€. μƒκ·Όμ΄λŠ” 숫자 μΉ΄λ“œ N개λ₯Ό κ°€μ§€κ³  μžˆλ‹€. μ •μˆ˜ Mκ°œκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 이 μˆ˜κ°€ μ ν˜€μžˆλŠ” 숫자 μΉ΄λ“œλ₯Ό 상근이가 κ°€μ§€κ³  μžˆλŠ”μ§€ μ•„λ‹Œμ§€λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

 

μž…λ ₯   |

  첫째 쀄에 상근이가 κ°€μ§€κ³  μžˆλŠ” 숫자 μΉ΄λ“œμ˜ 개수 N(1 ≤ N ≤ 500,000)이 μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” 숫자 μΉ΄λ“œμ— μ ν˜€μžˆλŠ” μ •μˆ˜κ°€ μ£Όμ–΄μ§„λ‹€. 숫자 μΉ΄λ“œμ— μ ν˜€μžˆλŠ” μˆ˜λŠ” -10,000,000보닀 ν¬κ±°λ‚˜ κ°™κ³ , 10,000,000보닀 μž‘κ±°λ‚˜ κ°™λ‹€. 두 숫자 μΉ΄λ“œμ— 같은 μˆ˜κ°€ μ ν˜€μžˆλŠ” κ²½μš°λŠ” μ—†λ‹€.

  μ…‹μ§Έ μ€„μ—λŠ” M(1 ≤ M ≤ 500,000)이 μ£Όμ–΄μ§„λ‹€. λ„·μ§Έ μ€„μ—λŠ” 상근이가 κ°€μ§€κ³  μžˆλŠ” 숫자 μΉ΄λ“œμΈμ§€ μ•„λ‹Œμ§€λ₯Ό ꡬ해야 ν•  M개의 μ •μˆ˜κ°€ μ£Όμ–΄μ§€λ©°, 이 μˆ˜λŠ” 곡백으둜 κ΅¬λΆ„λ˜μ–΄μ Έ μžˆλ‹€. 이 μˆ˜λ„ -10,000,000보닀 ν¬κ±°λ‚˜ κ°™κ³ , 10,000,000보닀 μž‘κ±°λ‚˜ κ°™λ‹€.

 

좜λ ₯   | 

  첫째 쀄에 μž…λ ₯으둜 μ£Όμ–΄μ§„ M개의 μˆ˜μ— λŒ€ν•΄μ„œ, 각 μˆ˜κ°€ 적힌 숫자 μΉ΄λ“œλ₯Ό 상근이가 κ°€μ§€κ³  있으면 1을, μ•„λ‹ˆλ©΄ 0을 곡백으둜 ꡬ뢄해 좜λ ₯ν•œλ‹€.

 

 

풀이  |

  M개의 숫자λ₯Ό 담은 array둜 for문을 돌렀 N개의 array 내뢀에 ν•΄λ‹Ή 값이 μžˆλŠ”μ§€ λΉ„κ΅ν•œλ‹€.

 

 

λ‹΅μ•ˆ  |

fun main() {
    val N = readLine()!!.toInt()
    val nArr = readLine()!!.split(" ").map(String::toInt)
    val M = readLine()!!.toInt()
    val mArr = readLine()!!.split(" ").map(String::toInt)
    
    val result = Array(M) {0}
    mArr.forEachIndexed { i, n ->
        if (n in nArr) {
            result[i] = 1
        }
    }
    print(result.joinToString(" "))
}

 

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

 

arrayλ₯Ό Set으둜 λ³€ν™˜ν•˜μ—¬ λΉ λ₯΄κ²Œ μš”μ†Œλ₯Ό 확인할 수 μžˆλ„λ‘ μˆ˜μ •ν•œ μ½”λ“œ

import java.io.BufferedReader
import java.io.InputStreamReader

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))

    val N = br.readLine().toInt()
    val nArr = br.readLine().split(" ").map(String::toInt).toSet() // λ³€ν™˜ ν›„ Set으둜 μ €μž₯
    val M = br.readLine().toInt()
    val mArr = br.readLine().split(" ").map(String::toInt)

    val result = IntArray(M)
    for (i in mArr.indices) {
        if (mArr[i] in nArr) {
            result[i] = 1
        } else {
            result[i] = 0
        }
    }

    print(result.joinToString(" "))
}

 

λ°˜μ‘ν˜•