Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 두 문자열의 교집합(공통 문자) 구하는 방법

이 글에서는 파이썬(Python)에서 두 문자열의 교집합, 즉 양쪽 문자열에 모두 포함된 공통 문자를 추출하는 다양한 방법을 알아봅니다.

가장 기본적인 반복문 방식부터 파이썬다운 set(집합)을 활용하는 방식까지 단계별로 살펴보겠습니다.

방법 1: 반복문을 이용한 구현

반복문을 사용해 두 문자열의 공통 문자를 찾는 절차는 다음과 같습니다.

  • 두 개의 문자열과 결과를 담을 빈 문자열을 초기화합니다.
  • 첫 번째 문자열을 순회하면서, 현재 문자가 두 번째 문자열에도 존재하고 아직 결과 문자열에 없다면 추가합니다.
  • 최종 결과를 출력합니다.

예제 코드

# 문자열 초기화
string_1 = 'tutorialspoint'
string_2 = 'tut'

result = ''

# 두 문자열의 공통 문자 찾기
for char in string_1:
    if char in string_2 and not char in result:
        result += char

# 결과 출력
print(result)

실행 결과

tu

위 코드는 첫 번째 문자열 'tutorialspoint'를 한 글자씩 확인하면서, 두 번째 문자열 'tut'에도 포함되어 있고 중복되지 않은 문자만 결과에 누적합니다. 그 결과 'tu'가 출력됩니다.

방법 2: set(집합)을 이용한 구현

파이썬의 내장 자료형인 set을 활용하면 훨씬 간결하게 교집합을 구할 수 있습니다. 진행 순서는 다음과 같습니다.

  • 두 문자열을 각각 집합(set)으로 변환합니다.
  • intersection() 메서드로 두 집합의 교집합을 구합니다.
  • join() 메서드를 사용해 결과를 문자열로 변환합니다.
  • 결과를 출력합니다.

예제 코드

# 문자열 초기화
string_1 = 'tutorialspoint'
string_2 = 'tut'

# 교집합 구하기
result = set(string_1).intersection(string_2)

# 문자열로 변환
result_str = ''.join(result)

# 결과 출력
print(result_str)

실행 결과

ut

set(string_1).intersection(string_2)는 두 문자열에 공통으로 포함된 문자들의 집합을 반환하며, ''.join()으로 이를 하나의 문자열로 합칩니다.

참고: set은 순서가 없는(unordered) 자료형이므로, 출력되는 문자의 순서는 실행 환경에 따라 달라질 수 있습니다. 순서가 중요하다면 방법 1처럼 반복문을 사용하거나, 결과를 정렬(sorted())한 후 join하는 것이 좋습니다.

마무리

지금까지 파이썬에서 두 문자열의 교집합을 구하는 두 가지 방법, 즉 반복문을 이용한 직접 구현 방식과 set의 intersection() 메서드를 활용한 간결한 방식을 살펴보았습니다. 짧은 문자열이나 순서 유지가 필요하다면 반복문 방식을, 간결함과 성능이 중요하다면 set 방식을 선택하시면 됩니다.

글에 대해 궁금한 점이 있다면 댓글로 남겨주세요.