MUKER_DEV with iOS

[swift] λ°±μ€€ - 1620번: λ‚˜λŠ”μ•Ό 포켓λͺ¬ λ§ˆμŠ€ν„° μ΄λ‹€μ†œ λ³Έλ¬Έ

πŸ€– μ•Œκ³ λ¦¬μ¦˜/BAEKJOON

[swift] λ°±μ€€ - 1620번: λ‚˜λŠ”μ•Ό 포켓λͺ¬ λ§ˆμŠ€ν„° μ΄λ‹€μ†œ

MUKER 2023. 2. 25. 23:06
 

1620번: λ‚˜λŠ”μ•Ό 포켓λͺ¬ λ§ˆμŠ€ν„° μ΄λ‹€μ†œ

첫째 μ€„μ—λŠ” 도감에 μˆ˜λ‘λ˜μ–΄ μžˆλŠ” 포켓λͺ¬μ˜ 개수 Nμ΄λž‘ λ‚΄κ°€ λ§žμΆ°μ•Ό ν•˜λŠ” 문제의 개수 M이 μ£Όμ–΄μ Έ. Nκ³Ό M은 1보닀 ν¬κ±°λ‚˜ κ°™κ³ , 100,000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μΈλ°, μžμ—°μˆ˜κ°€ λ­”μ§€λŠ” μ•Œμ§€? λͺ¨λ₯΄λ©΄

www.acmicpc.net

문제 ν‘ΈλŠ” 데 μžˆμ–΄ 도움이 λ˜λ„λ‘ λ‚˜μ˜ 풀이와 κ°œμ„ λœ 풀이λ₯Ό μ˜¬λ¦½λ‹ˆλ‹€.
λ˜ν•œ 풀이 ν›„ λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이λ₯Ό 보고 μ°Έκ³ ν• λ§Œν•œ 풀이도 μ˜¬λ¦½λ‹ˆλ‹€.

- λ¬Έμ œμ— 따라 λ‚˜μ˜ ν’€μ΄λ§Œ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
- ν•΄λ‹Ή 풀이듀은 풀이 쀑 ν•˜λ‚˜μΌ 뿐 μ΅œμ„ μ˜ ν’€μ΄λŠ” 아닐 수 μžˆμŠ΅λ‹ˆλ‹€.

 


 

λ‚˜μ˜ 풀이

let input = readLine()!.split(separator: " ").map { Int($0)! }
var nameSearch = [String: Int]()
var numSearch = [Int: String]()

for i in 1...input[0] {
    let name = readLine()!
    nameSearch[name] = i
    numSearch[i] = name
}
for _ in 0..<input[1] {
    let temp = readLine()!
    if let inputInt = Int(temp) {
        print(numSearch[inputInt]!)
    } else {
        print(nameSearch[temp]!)
    }
}

 

두 개의 λ”•μ…”λ„ˆλ¦¬λ₯Ό 생성해 문제λ₯Ό ν’€μ—ˆμŠ΅λ‹ˆλ‹€.

첫 번째 λ”•μ…”λ„ˆλ¦¬λŠ” key에 포켓λͺ¬μ˜ 이름, value에 번호λ₯Ό λ„£μ—ˆκ³ 

두 번째 λ”•μ…”λ„ˆλ¦¬μ—λŠ” λ°˜λŒ€λ‘œ key에 번호, valueμ—λŠ” 포켓λͺ¬ 이름을 λ„£μ—ˆμŠ΅λ‹ˆλ‹€.

 

문제λ₯Ό ν’€κΈ° μœ„ν•œ input값이 λ“€μ–΄μ˜¬ λ•Œ

숫자둜 λ³€ν˜• κ°€λŠ₯ν•˜λ‹€λ©΄

두 번째 λ”•μ…”λ„ˆλ¦¬λ‘œ 번호λ₯Ό 톡해 포켓λͺ¬ 이름을 μ°Ύκ³ 

숫자둜 λ³€ν˜• λΆˆκ°€λŠ₯ν•˜λ‹€λ©΄

첫 번째 λ”•μ…”λ„ˆλ¦¬μ—μ„œ 포켓λͺ¬ 이름을 톡해 번호λ₯Ό μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.