아나그램(딕셔너리 해쉬)
생성일: 2022년 1월 29일 오후 5:52
구현 코드
# 아나그램(구글)
import sys
sys.stdin = open("input.txt", "rt")
first = input()
second = input()
firstDic = {}
secondDic = {}
for x in first:
if x in firstDic:
firstDic[x] += 1
else:
firstDic[x] = 1
for x in second:
if x in secondDic:
secondDic[x] += 1
else:
secondDic[x] = 1
if firstDic == secondDic:
print("YES")
else:
print("NO")
모범 답안
import sys
sys.stdin=open("input.txt", "r")
a=input()
b=input()
str1=dict()
str2=dict()
for x in a:
str1[x]=str1.get(x, 0)+1
for x in b:
str2[x]=str2.get(x, 0)+1
for i in str1.keys():
if i in str2.keys():
if str1[i]!=str2[i]:
print("NO")
break
else:
print("NO")
break
else:
print("YES")
<개선된 코드>
import sys
#sys.stdin=open("in1.txt", "r")
a=input()
b=input()
sH=dict()
for x in a:
sH[x]=sH.get(x, 0)+1
for x in b:
sH[x]=sH.get(x, 0)-1
for x in a:
if(sH.get(x)>0):
print("NO")
break;
else:
print("YES")
차이점
- 기본적인 로직은 같다.
- 딕셔너리 안에 key값이 있는경우 value에 1을 더해주고 없는 경우에는 해당 key를 딕셔너리에 추가하고 value를 1 로 설정해주는 부분에서
if x in firstDic: firstDic[x] += 1 else: firstDic[x] = 1
위의 두 코드는 같은 역할을 한다. (get()을 사용하여 1줄로 코드를 줄일 수 있다.)str1[x]=str1.get(x, 0)+1
Author And Source
이 문제에 관하여(아나그램(딕셔너리 해쉬)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lsj8706/아나그램딕셔너리-해쉬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)