Computer Science/Problem Solving7 [LeetCode > Easy > 1] Two Sum 문제https://leetcode.com/problems/two-sum/description/Runtime: 59ms, Memory 17.99MB주어진 배열에서 합쳐서 target 값이 되는 두 개의 값을 찾는다. (두 개의 값이 아닌 인덱스를 반환)내 풀이class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: # 주어진 리스트의 index, value가 담긴 리스트 생성 pointers = list(enumerate(nums)) # value를 기준으로 리스트 정렬 pointers.sort(key=lambda x: x[1]) size = len(nums) .. 2024. 6. 23. [LeetCode > Medium > 5] Longest Palindromic Substring 문제https://leetcode.com/problems/longest-palindromic-substring/description/Runtime: 4614ms, Memory 16.34MB주어진 문자열의 부분 문자열 중 가장 긴 회문을 반환내 풀이class Solution: def longestPalindrome(self, s: str) -> str: result = s[0] length = len(s) # 2개의 포인터로 모든 경우의 수를 탐색 for i in range(length): for j in range(i+1, length): # 현재 결과값보다 작으면 pass .. 2024. 6. 9. [LeetCode > Medium > 49] Group Anagrams 문제https://leetcode.com/problems/group-anagrams/description/Runtime: 71ms, Memory 19.80MB애너그램이 같은 문자열끼리 묶은 이중 리스트를 반환내 풀이class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: # 정렬한 애너그램이 key, 해당 애너그램인 문자열 리스트가 value results = dict() for s in strs: # 문자열을 정렬해 key를 구한다. sorted_s = list(s) sorted_s.sort() .. 2024. 6. 9. [LeetCode > Easy > 819] Most Common Word 문제https://leetcode.com/problems/most-common-word/description/Runtime: 43ms, Memory 16.57MB주어진 문자열(paragraph)에서 주어진 리스트(banned)에 없는 단어 중 가장 많이 등장하는 단어 반환내 풀이import collectionsimport reclass Solution: def mostCommonWord(self, paragraph: str, banned: List[str]) -> str: # 문자열과 띄어쓰기를 제외하고, 띄어쓰기로 변경 paragraph = re.sub("[^a-z ]", " ", paragraph.lower()) # 빈도 수를 계산 co.. 2024. 6. 9. [LeetCode > Medium > 937] Reorder Data in Log Files 문제https://leetcode.com/problems/reorder-data-in-log-files/description/Runtime: 42ms, Memory 16.56MB주어진 문자열 리스트를 아래 규칙에 따라 정렬한다.문자열은 띄어쓰기를 기준으로 분리가 가능, 분리된 첫 부분은 Key가 된다.key를 제외하고는 모두 문자열인 경우가, 모두 숫자인 경우 앞에 온다.모두 문자열인 경우는 사전순으로 나열한다.숫자는 input으로 주어진 순서 그대로 나열한다. 내 풀이class Solution: def reorderLogFiles(self, logs: List[str]) -> List[str]: letter_logs, digit_logs = [], [] for log in.. 2024. 6. 9. [LeetCode > Easy > 344] Reverse String 문제https://leetcode.com/problems/reverse-string/description/Runtime: 591ms, Memory 20.62MB주어진 리스트를 뒤집는 문제 (새로운 리스트 생성 X) 내 풀이class Solution: def reverseString(self, s: List[str]) -> None: # s를 뒤집어서 반복 for ss in s[::-1]: # 맨 뒤에 넣고, 앞을 뺀다 s.append(ss) s.pop(0)시간 복잡도s의 길이가 n이라면, O(n)1 ( [::-1]에서 n ) * ( for문에서 n )참고 사항s.reverse를 사용하면 더 간단하게 해결 가능 2024. 6. 9. [LeetCode > Easy > 125] Valid Palindrome 문제https://leetcode.com/problems/valid-palindrome/description/Runtime: 49ms, Memory 16.97MB주어진 문자열의 알파벳과 숫자만 남겼을 때, 거꾸로 해도 똑같은 문자열이 맞는지 판별하는 문제내 풀이class Solution: def isPalindrome(self, s: str) -> bool: # 알파벳과 숫자만 있는 문자열 alphanumeric = 'abcdefghijklmnopqrstuvwxyz0123456789' # 회문을 저장할 새로운 문자열 palindrome = '' # 주어진 문자열 s를 한 글자씩 반복 for ss in .. 2024. 6. 6. 이전 1 다음 반응형