코딩에 대한 이해력을 높이기 위한 작성된 글입니다.
여기의 내용은 @NeetCode 유튜버 동영상을 기반으로 작성되었으므로, 문제 발생 시 즉각적으로 삭제하도록 하겠습니다.


일단은 Anagram이 무엇인지 파악하는 것이 중요할거 같습니다.
Anagram은 영어의 말장난으로서, 단어의 문자를 재배열하며 다른 뜻을 가지는 다른 단어로 바꾸는 것을 뜻하게 됩니다. 그렇다면 Example 1에서 나온 단어에 대해 파악해볼께요.
s = "anagram"
t = "nagaram"
첫번째로 파악해야 할 것은, 단어의 길이 입니다. 단어의 길이가 다르다면 바로 False를 Return 해야겠죠.
그후, dict 형태로 바꿔준다면, 아래와 같이 표현할 수 있을 것 입니다.
"a" 3개, "n" 1개, "g" 1개, "r" 1개, "m" 1개 (key:value 형태)
s와 t에 대해 비교하게 된다면, anagram인지 파악할 수 있을 것 입니다.
class Solution:
def isAnagram(self, s:str, t:str) -> bool:
if len(s) != len(t):
return False
countS, countT = {}, {}
for i in range(len(s)): -------------------> s와 t의 길이가 같으므로, 한가지 사용
countS[s[i]] = 1 + countS.get(s[i],0)
countT[t[i]] = 1 + countT.get(t[i],0)
return countS == countT
여기에서 get 함수를 사용하는 이유는, 초반에 만들었던 hashmap에 비교하고자 하는 key가 없다면 에러를 반환하기 때문에, get 함수를 통해 0 반환의 목적을 가지고 있습니다.
유익한 글 잘 봤습니다, 감사합니다.