단순 문자열 조작 파트의 마지막 문제이다. 입력으로 어떤 문자열이 주어졌을 때, 해당 문자열에서 가장 긴 부분 팰린드롬을 찾으라는 문제이다. 입출력 예제는 다음과 같다. 문제는 두개의 포인터가 중앙을 중심으로 확장하는 형태로 풀 수 있다. 두개의 포인터는 처음엔 문자열 2자리, 3자리로 작은 규모로 시작하여 팰린드롬을 발견했을 때, 중앙을 중심으로 이를 확장하는 방식이다. def longestPalindrome(s: str) -> str: #팰린드롬 판별 및 투 포인터 확장 def expand(left: int, right: int) -> str: while left >= 0 and right < len(s) and s[left] == s[right]: left -= 1 right += 1 return ..
문제: 금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라. 대소문자를 구분하지 않으며, 구두점 또한 무시한다. 풀이는 리스트 컴프리헨션과 Counter를 이용한다. 그렇게 어려운 문제는 아니다. 정규 표현식을 이용하여 단어가 아닌 모든 문자를 공백으로 치환한 뒤에 banned 리스트 내에 있는 단어를 제외한 단어의 리스트를 따로 만들어 주고, 그 개수를 세주기만 하면 끝난다. import collections import re from typing import List def mostCommonWord(paragraph: str, banned: List[str]) -> str: words = [word for word in re.sub('[^\w]', ' ', paragraph).lower()...
그냥 기초를 짚고 넘어가자는 의미에서 아주 간단한, 문자열을 뒤집어서 리턴하는 함수를 작성해보려고 한다. 1) 투 포인터를 이용 from typing import List def reverseString(s: List[str]): left = 0 right = len(s) - 1 temp = 0 while left < right: temp = s[left] s[left] = s[right] s[right] = temp left += 1 right -= 1 if __name__ == '__main__': s = ["1", "2", "3", "4"] reverseString(s) print(s) 혹은 temp를 사용하지 않고도 다음과 같이 작성할 수 있다. (파이썬은 진짜 미친 거 같다) from typin..
파이썬 문제 풀이 첫 포스팅이다. 파이썬 같은 인터프리터 언어는 알고림즘의 처리 속도가 Java나 C 보다 느린 것이 단점이지만, 이를 보완하고도 남을만큼 코드를 간단하게 작성할 수 있다는 장점이 있다. Java 프로그래머스 연습 문제 풀이가 얼마 안남았긴 한데, 남은 문제들의 난이도가 상당해서...파이썬과 함께 기초 알고리즘을 먼저 제대로 짚고 넘어가는 것이 더 좋을 거 같다고 생각했다. 그럼 가장 기초적이고 빈번하게 나오는 "문자열 조작" 부터 차례차례 문제를 풀어나가도록 하겠다. 팰린드롬은 앞뒤가 똑같은 단어 또는 문장을 말하며, 주어진 문자열이 팰린드롬인지 아닌지 확인하면 되는 문제이다. 앞, 뒤를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다. 알고리즘의 속도에 따라 3가지 방법으로 해당 문..
- redux-thunk
- 인천 구월동 맛집
- javascript
- 정보보안기사 #실기 #정리
- Async
- AsyncStorage
- Promise
- redux
- 이탈리안 레스토랑
- 파니노구스토
- 맛집
- await
- 인천 구월동 이탈리안 맛집
- react
- react-native
- Total
- Today
- Yesterday