Programming 기초/Coding Test

[softeer] str concatenate 은 += 가 아닌 join 메소드를 사용하자

코딩상륙작전 2024. 6. 25. 23:43

 

 한양대 HCPC 2023] X marks the Spot

import sys
input = sys.stdin.readline
n = int(input())
result = []
for _ in range(n) :
    s, t = input().split()
    result.append(t[s.upper().find('X')].upper())
print("".join(result))

 

처음에 += 로 result를 작성했는데, 5초가 넘어버려서 시간 초과가 떴다.

join 메소드로 변경하니 시간이 1초대로 나왔다.

 

string은 +를 할 때 두 문자열 길이만큼의 연산 시간이 걸린다.

그 이유는 s1,s2 라는 각각의 변수에 string을 저장해두었다고 하면, s = s1+s2 연산시 새로운 메모리 공간에 s1를 복사하고 그 뒤에 s2를 복사해서 이 새로운 문자열의 주소값을 다시 s에 할당한다. 

고로, 시간과 공간 모두 s1+s2의 길이만큼 걸린다.