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

Python으로 두 문자열 배열이 동일한 문자열을 나타내는지 확인하는 방법

두 개의 문자열 배열 word1word2가 주어졌을 때, 이 두 배열이 서로 같은 문자열을 나타내는지 확인해야 하는 문제입니다. 배열의 요소들이 순서대로 이어 붙여져(concatenate) 하나의 문자열을 형성할 수 있다면, 그 문자열은 해당 배열로 표현된다고 말할 수 있습니다.

예를 들어 입력이 다음과 같다면,

  • word1 = ["ko", "lka", "ta"]

  • word2 = ["k", "olk", "at", "a"]

두 배열 모두 요소를 순서대로 연결하면 "kolkata"라는 동일한 문자열이 되므로, 출력 결과는 True가 됩니다.

문제 해결 접근 방법

이 문제는 다음 단계를 따라 해결할 수 있습니다.

  • 빈 문자열 s1s2를 각각 초기화합니다.

  • word1의 각 문자열 요소 i를 반복하면서 s1에 이어 붙입니다.

  • word2의 각 문자열 요소 i를 반복하면서 s2에 이어 붙입니다.

  • s1s2가 같으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

Python 코드 예제

아래 구현 예제를 통해 더 잘 이해할 수 있습니다.

def solve(word1, word2):
    s1 = ''
    s2 = ''
    for i in word1:
        s1 += i
    for i in word2:
        s2 += i
    return (s1 == s2)

word1 = ["ko", "lka", "ta"]
word2 = ["k", "olk", "at", "a"]
print(solve(word1, word2))

입력

["ko", "lka", "ta"], ["k", "olk", "at", "a"]

출력

True

더 효율적인 방법: join() 활용하기

반복문에서 문자열을 +=로 연결하는 방식은 직관적이지만, 문자열이 불변(immutable) 객체인 Python 특성상 매번 새로운 문자열 객체가 생성되어 성능이 떨어질 수 있습니다. 내장 함수 join()을 사용하면 더 간결하고 빠르게 처리할 수 있습니다.

def solve(word1, word2):
    return ''.join(word1) == ''.join(word2)

word1 = ["ko", "lka", "ta"]
word2 = ["k", "olk", "at", "a"]
print(solve(word1, word2))  # 출력: True

이 방법은 코드가 한 줄로 줄어들어 가독성이 좋아질 뿐만 아니라, 대용량 데이터를 처리할 때도 훨씬 우수한 성능을 보여줍니다. 실무에서는 join() 방식을 사용하는 것이 권장됩니다.