🤔 나의 풀이1 (정렬을 이용한 비교)
📌 문제
- 파이썬 알고리즘 인터뷰 62번 문제
- 주어진 문자열이 애너그램인지 판별하라.
- 애너그램(Anagram) : 어떠한 단어의 문자를 재배열하여 다른 뜻을 가지는 다른 단어로 바꾸는 것
📌 날짜
2020.02.27
📌 시도 횟수
1 try
💡 Code
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
return sorted(s) == sorted(t)
💡 문제 해결 방법
- 엄청 간단한 풀이!
- 파이썬의 내장 정렬 함수를 사용했다.
💡 새롭게 알게 된 점
-
❌ (한번에 맞추지 못한 경우) 오답의 원인
-
😉 나의 풀이2 (한개의 dict 사용하기)
💡 Code
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
word_dict = defaultdict(int)
for char in s:
word_dict[char] += 1
for char in t:
word_dict[char] -= 1
for n in word_dict.values():
if n != 0:
return False
return True
💡 문제 해결 방법
- 해시를 사용하면 위의 방법보다 좀 더 빠르게 풀 수 있지 않을까 생각했다.
(엄청 조금 빨라진다. 파이썬 기본 내장 sorted도 나름 빨라서..)
- 하나의 딕셔너리만 사용하는 방법으로 풀었다.
- 쉬운 문제라서 코드만 봐도 이해가 된다.
💡 새롭게 알게 된 점
-