Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

cchanmi

[Swift] Dictionary에서 value를 이용해 key 구하기 본문

Swift

[Swift] Dictionary에서 value를 이용해 key 구하기

cchanmi 2023. 5. 18. 11:20

Dictionary는 key와 value로 이뤄진 자료구조입니다.

key를 이용해 value를 찾을 수 있는데, 그 반대인 value를 이용해 key를 찾는 방법도 있을까요?

 

let input = readLine()!.split(separator: " ").map{Int(String($0))!}
let number = input[0]
let cutLine = input[1]
var dic = [Int:String]()

// 딕셔너리에 값 추가

for i in 1...number {
    dic[i, default: ""] += readLine()!
}

이 코드는 백준 문제인데요. 제가 조금 바꿔 보았습니다. ㅎㅎ

현재 이 코드의 dictionary는 1번부터 시작하는 숫자로 key를 가지고 value로는 포켓몬 이름을 가지고 있어요.

 

그런데 value인 포켓몬 이름으로 key를 찾아볼게요!

 

// 찾아야 하는 포켓몬 이름이나, 도감 순서일 경우 나눠서 계산

for _ in 0..<cutLine {
    let poketmonName = readLine()!
    
    let poketmonName = input
    let foundKey = dic.first { $0.value == poketmonName }?.key

    print(foundKey!)
    
}

먼저 포켓몬 이름을 입력받고, dic를 처음부터 탐색하며 입력받은 포켓몬 이름과 같은 value의 키값을 저장해 줍니다!

생각보다 어렵지 않네요!

 

하지만 dictionary를 처음부터 탐색해야 하기 때문에 찾아야 하는 값이 시간복잡도는 O(n)일 것 같네요!

 

Comments