Where who wants to meet someone
백준 Swift [14425] 문자열 집합 본문
728x90
난이도
실버 III
문제
https://www.acmicpc.net/problem/14425
내 답안
let nm = readLine()!.split(separator: " ").map { Int($0)! }
let n = nm[0]
let m = nm[1]
var s = Set<String>()
var texts = [String]()
for _ in 1...n {
s.insert(readLine()!)
}
for _ in 1...m {
texts.append(readLine()!)
}
var count = 0
texts.forEach { text in
if s.contains(text) {
count += 1
}
}
print(count)
- 각 문자열을 다 저장한 다음에 똑같이 contains(_:) 메서드를 사용하는 방식을 사용
- 이전 문제에서 Array와 Set의 contains(_:)의 시간 복잡도 차이를 봤기 때문에 contains(_:)를 사용하는 s는 Set<String> 타입으로 설정
- texts 배열에 있는 각 항목을 forEach로 돌면서 s에 포함되어 있다면 count를 증가시키고 최종적으로 count값을 출력
'백준 알고리즘 문제 기록 > 집합과 맵' 카테고리의 다른 글
백준 Swift [1764] 듣보잡 (0) | 2023.08.11 |
---|---|
백준 Swift [10816] 숫자 카드 2 (0) | 2023.08.11 |
백준 Swift [1620] 나는야 포켓몬 마스터 이다솜 (0) | 2023.08.11 |
백준 Swift [7785] 회사에 있는 사람 (0) | 2023.08.08 |
백준 Swift [10815] 숫자 카드 (0) | 2023.08.08 |