파이썬 알고리즘 인터뷰

    문자열 뒤집기 - [LeetCode.344]

    LeetCode.344 문자열을 뒤집는 함수를 작성하라. 입력값은 문자열이며, 리턴 없이 리스트 내부를 직접 조작하라. ✊ 꼭 체크하고 넘어가야 할 제약사항 입력값은 문자열이다. 리턴 없이 문자열을 직접 조작해야 한다. [풀이 1] 투 포인터를 이용한 스왑 ❓ 투 포인터란? 2개의 포인터를 이용해 범위를 조정해가며 풀이하는 방식 def reverseString(self, s: List[str]) -> None: left, right = 0, len(s) = -1 while left < right: s[left], s[right] = s[right], s[left] left += 1 right += 1 [풀이 2] 파이썬다운 방식 입력값이 리스트로 주어진다면 아래와 같이 reverse()함수를 통해 쉽게 ..

    Palindrome - [LeetCode.125]

    LeetCode.125 주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다. 팰린드롬의 정의 앞뒤가 똑같은 단어나 문장으로, 뒤집어도 같은 말이 되는 단어 또는 문장을 팰린드롬(Palindrome)이라고 한다. [풀이 1] 리스트로 변환 대소문자 여부를 구분하지 않고, 영문자 숫자만을 대상으로 한다. strs = [] for char in s: if char.isalnum(): strs.append(char.lower()) isAlnum()은 영문자 숫자 여부를 판별하는 함수. 대소문자를 구분하지 않으므로 lower()로 모두 소문자로 변환한다. while len(strs) > 1: if strs.pop(0) != strs.pop(): return Fals..