본문 바로가기
코딩 테스트/백준

[백준] (Swift) 14425번: 문자열 집합

by Dev.Andy 2023. 4. 11.

📌 문제

캡처한 백준 이미지, 14425번 문자열 집합

14425번: 문자열 집합

📌 풀이

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)

 

댓글