•
문제 링크 : 
LeetCodeValid Anagram - LeetCode
•
문제 설명 : 제공된 두 문자열이 동일한 알파벳을 동일한 횟수로 사용한 문자열인지 반환
•
풀이 방법
◦
처음엔 sorting 문제로 확인했기 때문에, 문자열을 sorting해서 비교하였다.
▪
이 경우 O(NlonN)으로 진행된다.
◦
하지만, 해시테이블을 사용하면 O(N)으로 풀 수 있어 해당 방식으로 진행했다.
•
시간복잡도 : 
•
성공 코드
from collections import Counter
class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        s_info = defaultdict(int)
        t_info = defaultdict(int)
        keys = set()
        for ch in s:
            s_info[ch] += 1
            keys.add(ch)
        for ch in t:
            t_info[ch] += 1
            keys.add(ch)
				
				# 각 문자의 사용 갯수가 다른 문자열이면 바로 False
        for k in keys:
            if s_info[k] != t_info[k]:
                return False
        
        return True
Python
복사
•
Sorting을 사용한 코드
시간 복잡도는 더 오래걸리지만, 공간 복잡도 부분에서는 해시테이블 방식보다 더 좋을 것 이다.
from collections import Counter
class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        return sorted(s) == sorted(t)
Python
복사
