스위프트를 사용해 알고리즘 문제를 풀다 보면 딕셔너리를 상당히 많이 사용한다.
오늘도 어김없이 프로그래머스에 있는 알고리즘 문제를 풀던 중 어느 한 숫자가 딕셔너리 안에 있는 key들 중 어떤것과 매팽이 되어있는지 알아야 하는 상황이 생겼다. 보통 value 값을 찾기 위해 key 값을 사용하지만 이 상황은 오히려 반대로 key 를 찾기 위해 value 값을 이용해야 하는 상황이 나온 것이다. 이 문제를 풀기위해 찾아보니 keys 라는 것을 알게 되었다.
Dictionary.keys
딕셔너리 자료형으로 이루어진 변수 뒤에 .keys 를 붙여 사용하면 딕셔너리 안에 있는 key들을 모아둔 컬렉션을 반환하게 된다. 이 컬렉션을 for ~ in 루프와 함께 사용하면 딕셔너리 안에 존재하는 키들을 전부 확인할 수 있다.
var dict = ["A" : 2, "B" : 3, "C" : 1]
var num = 2
for key in dict.keys {
if dict[key]! == num {
print(key)
}
}
// 실행 결과
// A
또한 이 key 를 사용해 딕셔너리 안에 들어있는 value 값을 하나씩 확인할 수 있다.
이렇게 key 들을 확인하는 방법이 있다면 반대로 value 들을 확인하는 방법이 있는지 궁금해서 찾아보았다. 그랬더니 역시나 value 들을 모아둔 컬렉션을 사용하는 방법 또한 존재했다.
Dictionary.values
딕셔너리 자료형으로 이루어진 변수 뒤에 .values 를 붙여 사용하면 .keys 와 반대로 딕셔너리 안에 있는 value 들을 모아둔 컬렉션을 반환하게 된다. 이 컬렉션을 for ~ in 루프와 함께 사용하면 딕셔너리 안에 있는 값들을 전부 확인할 수 있다.
var dict = ["A" : 2, "B" : 3, "C" : 1]
var str = "A"
for value in dict.values {
if dict[str] == value {
print(key)
}
}
// 실행 결과
// 2'TIL(Today I Learned)' 카테고리의 다른 글
| 2024.04.22 Today I Learned (1) | 2024.04.22 |
|---|---|
| 2024.04.19 Today I Learned (1) | 2024.04.19 |
| 2024.04.17 Today I Learned (1) | 2024.04.17 |
| 2024.04.16 Today I Learned (1) | 2024.04.16 |
| 2024.04.15 Today I Learned (0) | 2024.04.15 |