[백준/파이썬] 3778번 애너그램 거리 풀이

업데이트:



문제 정보


풀이

문제

두 문자열이 애너그램이 되기 위해 추가/삭제해야 하는 최소 문자 개수를 구하는 문제입니다.

코드

import sys;read=sys.stdin.readline
s=[]
for T in range(int(read())):
    a,b=read(),read()
    c=dict()
    for ch in a:
        try:c[ch]+=1
        except:c[ch]=1
    for ch in b:
        try:c[ch]-=1
        except:c[ch]=-1
    r=0
    for k,v in c.items():r+=abs(v)
    s.append(f'Case #{T+1}: {r}')
print('\n'.join(s))

설명

문자별 등장 횟수 차이를 딕셔너리로 누적한 뒤 절댓값 합을 구하면 애너그램 거리입니다.



댓글남기기