티스토리 뷰

Tech/Algorithm

ANAGRAMS 아나그램 알고리즘

Ellie Kim 2021. 5. 14. 02:48

아나그램이란 두 문자열이 알파벳의 나열 순서는 다르지만 알파벳 구성이 일치하면 두 단어는 아나그램이라고 합니다.
한 단어를 재 배열하면 같은 단어가 된다는 것을 아나그램이라고 합니다.
ex) 가나 > 나가, 국왕 > 왕국, 남장 > 장남
ex) TAR > RAT, ARC > CAR, ELBOW > BELOW

 

주어진 두 단어를 정렬하는 방법

func anagram(s1: String, s2: String) -> Bool {
    guard s1.count == s2.count else { return false }
    let sorted1 = s1.sorted()
    let sorted2 = s2.sorted()
    
    if sorted1 == sorted2 {
        return true
    } else {
        return false        
    }
}

print(anagram(s1: "TAR", s2: "RAR"))
print(anagram(s1: "ARC", s2: "CAR"))
print(anagram(s1: "ELBOW", s2: "BELOW"))

가장 먼저 떠오른 방법이 주어진 두 단어를 정렬하는 방법입니다.
처음 guard문을 둔 이유는 두 문자열의 개수를 같은지 비교해줍니다.
s1문자열을 정렬해주고, s2문자열을 정렬해줍니다.
그리고 if문으로 sorted1, sorted2이 같은지 비교해줍니다.

3개의 예제의 과정을 보면 아래와 같습니다.

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함