Altiora Petamus

애너그램 만들기 본문

1day-1algorithm

애너그램 만들기

Haril Song 2021. 8. 26. 17:30

1919번: 애너그램 만들기

 

1919번: 애너그램 만들기

두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs

www.acmicpc.net

🤔생각해보기

브론즈2 답지 않게 문제는 엄청 복잡하게 적어놨지만, 정리해보면 두 문자열에서 동시에 포함하지 않은, 서로의 문자열에만 포함된 문자열을 찾는 문제입니다.

set() 을 사용하면 집합 연산을 사용할 수 있지만, 중복이 제거되면서 개수를 파악하기 힘들게 될 수 있기 때문에, Counter 를 사용해주었습니다.

Code

from collections import Counter

a = Counter(input())
b = Counter(input())

# a.keys() ^ b.keys() => {x, y, c, a}
print(sum(((a | b) - (a & b)).values()))

Counter 객체를 직접 ^(대칭차집합) 연산자로 처리할 수 없기 때문에 대칭차집합과 논리적으로 동일한 합집합에서 교집합을 빼주는 방법으로 해결했습니다. 그리고 문제는 문자 수를 구해야하기 때문에 values() 를 사용해서 합계를 구해줍시다.

'1day-1algorithm' 카테고리의 다른 글

대칭 차집합  (0) 2021.09.05
유진수  (0) 2021.08.27
Perm Check  (0) 2021.08.23
DNA  (0) 2021.08.22
세로읽기  (0) 2021.08.17