📌 문제
📌 풀이
Set 자료형과 관련 메서드를 알면 간단하게 풀 수 있는 문제였다.
질문
처음에는 Set 자료형으로 요소를 추가하는 건 알았지만 아래의 궁금증이 생겼다.
Q. 예시의 baekjoononlinejudge과 baekjoon처럼 해당 요소가 정확히 일치하지 않으면 count 하지 않을 수 있나?
A. contains() 메서드가 알아서 count 하지 않는다(!)
contains()의 예시 코드
var array = ["jellyfish", "cat", "dog", "bird"]
var set = Set<String>()
for i in 0..<array.count - 1 {
set.insert(array[i])
}
print(set) // ["cat", "jellyfish", "dog"]
array.contains("jelly") // false
array.contains("fish") // false
set.contains("jelly") // false
set.contains("fish") // false
📌 정답 코드
import Foundation
// 첫 줄의 N과 M의 String을 Array<Int>로 할당
var ArrayOfNM = readLine()!.split(separator: " ").map { Int(String($0))! }
// N과 M을 실제로 할당
var N = ArrayOfNM[0]
var M = ArrayOfNM[1]
// S 초기화
var S = Set<String>()
// N개의 줄의 문자열을 S에 차례로 추가
for _ in 0..<N {
S.insert(readLine()!)
}
// 반환할 결괏값 초기화
var count = 0
// M개의 줄의 문자열이 실제 S에 있는지 검사하여 있을 경우 count 추가
for _ in 0..<M {
if S.contains(readLine()!) {
count += 1
}
}
// 최종 결괏값 출력
print(count)
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] (Swift) N과 M (2) (0) | 2023.04.30 |
---|---|
[백준] (Swift) 7785번: 회사에 있는 사람 (0) | 2023.04.13 |
[백준] (Swift) 10815번: 숫자 카드 (0) | 2023.04.11 |
[백준] (Swift) 2981번: 검문 (0) | 2023.04.07 |
[백준] (Swift) 1850번: 최대공약수 (0) | 2023.04.03 |
댓글