자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이

[자료구조 활용][스택, 큐, 해쉬, 힙] - 애너그램(딕셔너리)

얄루몬 2022. 7. 21. 16:13

문제

애너그램은 두 문자의 배열은 다르지만 그 구성이 일치하는 경우를 의미한다. AADdde 라면 DedAdA는 총 A(2), D(1), d(2), e(1)개로 동일한 문자라고 판단한다.

문제 풀이

from collections import defaultdict
s1= input()
s2 = input()

d = defaultdict(int)

for s in s1:
    d[s] += 1

for s in s2:
    if s in d:
        d[s] = d[s] - 1

for dic in d:
    if d[dic] != 0:
        print("NO")
        break
else:
    print("YES")
  • s1의 문자 개수를 센다음 s2의 문자 개수를 빼줘서 다 안 빠져 있을 경우엔 "NO"를 출력 다 일치해서 빠진 경우라면 "YES"를 출력한다.