- 입력된 문자열을 거꾸로 뒤집어 리턴하는 코드를 작성하시오.
- len(s) / 2 의 Time complexity 구현하시오.
def solution(s: str) -> str:
reversed_list = list(s)
start, fin = 0, len(s) - 1
while start < fin:
reversed_list[start], reversed_list[fin] = reversed_list[fin], reversed_list[start]
start += 1
fin -= 1
return ''.join(reversed_list)
s = 'abcde'
s_list = list(s)
s_list.reverse()
print(''.join(s_list))
s = 'abcde'
print(''.join(reversed(s)))
s = 'abcde'
print(s[::-1])
- 응용방안 : 3번 인덱스 부터 0번 인덱스 까지만 역순으로 출력
s = 'abcde'
print(s[3::-1])
test_case = "Feel so Good!" * 1000000
def solution(s: str) -> str:
reversed_list = list(s)
start, fin = 0, len(s) - 1
while start < fin:
reversed_list[start], reversed_list[fin] = reversed_list[fin], reversed_list[start]
start += 1
fin -= 1
return ''.join(reversed_list) # average: 647ms
def solution2(s: str) -> str:
s_list = list(s)
s_list.reverse()
return ''.join(s_list) # average: 134ms
def solution3(s: str) -> str:
return s[::-1] # average: 13ms
- 실험결과 Solution3의 방법이 join 등 다른 메소드를 사용하지 않아 압도적으로 높은 성능을 보였다
Methods |
Call count |
Call method |
Time |
solution |
2 |
join, len |
661ms |
solution2 |
2 |
reverse, join |
138ms |
solution3 |
0 |
|
15ms |
