문제
애너그램은 두 문자의 배열은 다르지만 그 구성이 일치하는 경우를 의미한다. 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"를 출력한다.
'자료구조와 알고리즘 > 개인적인 코딩테스트 관련 풀이' 카테고리의 다른 글
[완전탐색][재귀함수와 스택] - 재귀함수와 스택 (0) | 2022.07.21 |
---|---|
[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 최소힙, 최대힙(힙, 힙) (0) | 2022.07.21 |
[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 단어찾기(딕셔너리) (0) | 2022.07.18 |
[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 교육과정 설계(큐) (0) | 2022.07.18 |
[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 응급실(큐) (0) | 2022.07.18 |