반응형

LeetCode 4

[LeetCode/리트코드] No.819, 가장 흔한 단어(Most Common Word) - Python

이번 문제는 paragraph 에 들어온 문자열 중 가장 많이 등장한 '단어'를 골라내는 문제이다. 대신 banned 리스트에 있는 단어들은 제외하고 따지는 것이 조건이다.(조건에도 쓰여있지만 banned 리스트에는 0개부터 100개까지의 단어가 들어올 수 있다) 입력에는 문자 뿐만 아니라 기호들도 섞여 있다는 것과답을 출력할 때 lowercase로 출력해야한다는 것을 기억해야한다.답은 '유일'하다는 조건이 있으므로 중복 답에 대해서는 고려하지 않아도 된다.  알고리즘을 풀 때 예외 케이스를 생각하는 것이 중요한데, 이런 문자열 혹은 리스트 입력을 받는 문제에서는 무한한 문자열/리스트비어있는 문자열/리스트(혹은 한개, 두개로 구성되어 있는)위 두 가지의 케이스를 주의해서 문제를 풀어..

LeetCode 2023.08.02

[LeetCode/리트코드] No.937, 로그 파일 재정렬(Reorder Data in Log Files) - Python

이 문제는 로그 파일의 재정렬 이라는 문제이다. 문제 제목부터 어려워 보이지만 그저 리스트 속의 문자열을 파일로 볼 때, 문자파일과 숫자파일을 규칙에 맞게 정렬하면 되는 문제이다. 문제 조건:문자열의 제일 앞 단어는 Identifier(식별자)이다.문자로 구성된 문자파일은 모두 소문자로 구성된다.숫자 파일은 정수로 구성된다. 재배열 규칙:문자파일은 숫자파일보다 항상 앞에 온다.문자파일은 사전 순으로 재배열한다.식별자는 순서에 영향을 끼치지 않지만, 문자가 동일한 경우는 식별자의 순서로 배열한다.숫자파일은 입력 순서 그대로 배열한다.결국 복잡한 기준들을 모두 만족하는 정렬을 잘 해야한다...그렇다면 가장 큰 기준부터 세부적인 기준으로 들어가며 정렬하는 것이 바람직 할 것이다..

LeetCode 2023.08.02

[LeetCode/리트코드] No.344, 문자열 뒤집기(Reverse String) - Python

이번 문제는 생각보다 간단하다. 한 가지 주의해야 할 점이라 하면 'in-place'라는 단어에 때문에 input으로 받은 리스트 자체를 역순으로 바꿔서 반환해야 한다는 것이다. 책에서는 두 가지 풀이법을 보여주고 있다. 1. 파이썬 다운 방식(처음 풀었던 방법)class Solution: def reverseString(self, s: List[str]) -> None: s.reverse() return s해설: 리스트에 사용 가능한 함수인 reverse()를 이용하면 반환값이 없는 대신 주어진 리스트 자체를 역순으로 바꾼다는 특징이 있었다.  그 특징을 이용하여 'in-place' 조건을 충족하였다.  2. 투 포인터 이용class Soluti..

LeetCode 2023.08.01

[LeetCode/리트코드] No.125, 유효한 팰린드롬(Valid Palindrome) - Python

이 문제는 문자열이 주어졌을 때 그 문자열이 펠린드롬인지 판단하는 문제이다. 먼저 펠린드롬이란, 앞뒤가 똑같은 단어나 문장으로 뒤집어도 같은 뜻이 뒤는 단어 또는 문장을 뜻한다. ex) '토마토', '소주 만 병만 주소' 따라서 그냥 앞뒤가 같은지 확인하는 문제라면, 문자열에 list()를 씌운 뒤 리스트에 이용 가능한 reverse() 함수로 뒤집어도 같은지 확인하면 될 것이다. 그치만 input에 대한 가공이 필요하다. 문제에 쓰여있듯이 uppercase letters를 lowercase letters로 바꾸어야하고alphanumeric이(영문자 or 숫자) 아닌 문자들은 제거해야한다문제 분석이 끝났다면 풀이를 진행해보자. 3가지 큰 풀이법을 설명하려고 한다.  1. is..

LeetCode 2023.08.01
728x90