cchanmi
[Swift] Dictionary에서 value를 이용해 key 구하기 본문
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)일 것 같네요!
'Swift' 카테고리의 다른 글
[Swift] Dictionary, Set 들어온 순서대로 값 출력하기 (0) | 2023.05.13 |
---|---|
[Swift] String.index에 접근해 보자 (2) (Feat: prefix, suffix) (0) | 2023.03.04 |
[Swift] String index에 접근해 보자 (Feat: Substring) (0) | 2022.09.14 |
[Swift] 문자열의 문자 재정렬 (reversed, sort, sorted) (0) | 2022.09.06 |
Comments