오늘의 주제는 문자열!
문제
입력과 출력
코드
class Solution:
def restoreString(self, s: str, indices: List[int]) -> str:
temp=0
arr=[0 for i in range(len(s))]
for i in range(len(s)):
temp=indices[i]
arr[temp]=s[i]
result=''.join(arr)
return result
arr 라는 빈 배열을 s 배열의 길이와 똑같이 초기화를 해주고, indices의 요소를 순서대로 받는데, 이때 이 요소가 arr 의 인덱스가 된다.
arr의 indices[i]번째 인덱스에는 s[i]의 글자를 넣어주고, 이 리스트를 문자열로 변환한 뒤 반환했다.
(아직도 종강 못한 나.. 3시간뒤에 마지막 시험을 앞두고 있다람쥐...)
첫번째 실행결과
알고리즘은 맞았지만 마지막 반환형식이 잘못되었다.
그래서
''.join(arr)
함수를 사용해서 반환하는 타입을 문자열로 바꿔주었다.
성공! 그치만 런타임 끝자락에 있는 거 보고 충격..
코드를 좀 만져야겠다고 생각했다.
for i in range(len(s)):
temp=indices[i]
arr[temp]=s[i]
이 부분을 굳이 temp에 받아서 처리해줄 필요가 없을 것 같아서
class Solution:
def restoreString(self, s: str, indices: List[int]) -> str:
arr=[0 for i in range(len(s))]
for i in range(len(s)):
arr[indices[i]]=s[i]
result=''.join(arr)
return result
이렇게 바꿔주었더니
20ms나 줄었다..!! 진짜 그거하나가 컸군..