본문 바로가기

Python/파이썬을 알고리즘 인터뷰7

[ 6. 문자열 조작 ] - 문자열 슬라이싱(String Slicing) 💡 문자열 슬라이싱 파이썬의 문자열 슬라이싱은 내부적으로 매우 빠르게 동작한다. 위치를 지정하면 해당 위치의 배열 포인터를 얻게 되며, 이를 통해 연결된 객체를 찾아 실제 값을 찾아내는데, 이 과정은 매우 빠르게 진행되므로 문자열을 조작할 때는 항상 슬라이싱을 우선으로 사용하는 편이 속도 개선에 유리하다. 다음 표는 슬라이싱과 다른 연산 작업의 속도를 비교한 결과인데, 슬라이싱의 빠른 속도를 잘 보여준다. 알고리즘 실행 시간 `슬라이싱` 0.499 마이크로초 `리스트 reverse()` 2.46 마이크로초 `reversed() + join()` 2.49 마이크로초 `for 반복` 5.5 마이크로초 `while 반복` 9.4 마이크로초 재귀 24.3 마이크로초 2021. 4. 2.
[ 6. 문자열 조작 ] - 유효한 팰린드롬(Valid Palindrome) 📍 유효한 팰린드롬 주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다. 팰린드롬(Palindrome): 거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 낱말, 숫자, 문자열 등이다. 보통 낱말 사이에 있는 띄어쓰기나 문장 부호는 무시한다. (위키백과) ⚡️ 나의 풀이 팰린드롬은 위에서 작성한 바와 같이 띄어쓰기나 문장부호를 무시하고 거꾸로 읽어도 동일한 문장을 말한다. 나의 풀이 순서는 다음과 같다. 띄어쓰기나 문장부호를 없앤다 대소문자를 구분하지 않으므로 대문자 혹은 소문자로 통일시킨다. 기존 값과 거꾸로 한 값이 동일한지 확인한다. 방법 1을 풀기위한 아주 완벽한 함수가 있었다. 바로 isalnum()인데, 글자 또는 숫자로 구성되어있으면 True, 아.. 2021. 4. 2.