두 개의 문자열 배열 word1과 word2가 주어졌을 때, 이 두 배열이 서로 같은 문자열을 나타내는지 확인해야 하는 문제입니다. 배열의 요소들이 순서대로 이어 붙여져(concatenate) 하나의 문자열을 형성할 수 있다면, 그 문자열은 해당 배열로 표현된다고 말할 수 있습니다.
예를 들어 입력이 다음과 같다면,
word1 = ["ko", "lka", "ta"]
word2 = ["k", "olk", "at", "a"]
두 배열 모두 요소를 순서대로 연결하면 "kolkata"라는 동일한 문자열이 되므로, 출력 결과는 True가 됩니다.
문제 해결 접근 방법
이 문제는 다음 단계를 따라 해결할 수 있습니다.
빈 문자열
s1과s2를 각각 초기화합니다.word1의 각 문자열 요소i를 반복하면서s1에 이어 붙입니다.word2의 각 문자열 요소i를 반복하면서s2에 이어 붙입니다.s1과s2가 같으면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() 방식을 사용하는 것이 권장됩니다.