알고리즘 분류에 존재하는 방법 외에도 여러 방법으로 문제를 해결할 수도 있습니다
숫자 카드2 문제의 알고리즘 분류는 자료 구조, 정렬, 이분탐색, 해시를 사용한 집합과 맵으로 구성되어 있지만 그 외에 딕셔너리를 사용하여도 간단하게 해결할 수 있습니다.
- 먼저 딕셔너리를 만들어줍니다
- 이후 1번째 입력값과 3번째 입력값은 필요 없으므로 저장을 하지 않습니다.
- 2번째 입력값을 입력받고 각각 입력받은 숫자의 딕셔너리 value가 존재하지 않는다면 1로 초기화, 존재하면 값을 1씩 증가시킵니다.
- 4번째 입력값을 입력받고 각각 입력받은 숫자의 딕셔너리 value가 존재한다면 해당 value를 출력, 존재하지 않으면 0을 출력합니다.
var dic: [Int:Int] = [:]
_ = readLine()
readLine()!.split(separator: " ").map { Int($0)! }.forEach { num in
if let value = dic[num] {
dic[num] = value + 1
} else {
dic[num] = 1
}
}
_ = readLine()
readLine()!.split(separator: " ").map { Int($0)! }.forEach { value in
if let value = dic[value] {
print(value, terminator: " ")
} else {
print(0, terminator: " ")
}
}
'Algorithm > Baekjoon' 카테고리의 다른 글
Swift - 백준 10828번 스택 (0) | 2024.08.09 |
---|---|
Swift - 백준 10845번 큐 (0) | 2024.08.09 |
Swift - 백준 2798번 블랙잭 (1등 코드) (0) | 2024.08.08 |
Swift - 백준 11650번 좌표 정렬하기 (정렬) (0) | 2024.08.07 |
Swift - 백준 2839번 설탕 배달 (다이나믹 프로그래밍 DP) (0) | 2024.08.06 |