본문 바로가기

Algorithms and Languages

(50)
[Python] sorted() 함수와 list.sort() 메서드 설명 및 비교. 1. sorted() 함수- `iterable 객체(리스트, 튜플, 문자열 등)`를 정렬하여 `정렬된 새로운 리스트`를 반환하는 내장 함수.- 쉽게 말해, `iterable`를 받아서 `list`를 반환함.문법result = sorted(iterable, key=None, reverse=False)매개변수1. iterable (필수)- 정렬 대상이 되는 iterable 객체.- ex. `str, list, tuple, dict의 key 등`2. key (선택, 기본값 : None)- 정렬 기준을 지정하는 함수.- 각 요소에 대해 `key`로 전달된 함수가 호출되며, 반환된 값이 정렬 기준이 됨.- 기본값은 `None`로 이 경우 요소 자체를 기준으로 정렬.3. reverse (선택, 기본값 : False..
[Python/LeetCode] 49. Group Anagrams https://leetcode.com/problems/group-anagrams/ 입력 : 소문자 영어 단어들로 이루어진 문자열 배열(리스트) `strs`출력 : `strs` 내의 groups of anagram으로 이루어진 2차원 리스트Input: strs = ["eat","tea","tan","ate","nat","bat"]Output: [["bat"],["nat","tan"],["ate","eat","tea"]]Input: strs = [""]Output: [[""]]Input: strs = ["a"]Output: [["a"]]직관 및 접근당장 드는 생각은,일단 strs를 순회를 돌거임 for문으로. 대신 첫 단어는 미리 어떤 리스트에 할당시켜둠.그리고 그 다음 단어부터, 이게 이미 존재하는 리스트..
[Python] 문자열 치환 메서드 성능 비교 - str.replace(), re.sub(), str.translate() https://cuffyluv.tistory.com/120 [Python/leetcode] 819. Most Common Wordhttps://leetcode.com/problems/most-common-word/description/가장 흔한 단어.금지된 단어를 제외하고, 가장 흔하게 등장하는 단어를 출력해라. 대소문자 구분을 하지 않으며, 구두점(마침표, 쉼표 등) 또한 무시cuffyluv.tistory.com- 해당 문자열 치환 문제를 풀고 정리하면서, 같은 문제를 `str.replace`, `re.sub`, `str.translate` 세 함수 및 메서드 모두로 풀 수 있음을 확인하였다.- 따라서, 저 세 함수 및 메서드 각각을 어떤 상황에 사용해야 할지 그 특성과 장단점 및 성능을 비교해 정리해..
[Python/LeetCode] 819. Most Common Word https://leetcode.com/problems/most-common-word/description/가장 흔한 단어.금지된 단어를 제외하고, 가장 흔하게 등장하는 단어를 출력해라. 대소문자 구분을 하지 않으며, 구두점(마침표, 쉼표 등) 또한 무시한다.정답은 소문자 형태로 출력되어야 한다. 입력 : 원본 문자열 str, 금지된 단어 리스트 banned출력 : 가장 흔하게 등장하는 단어 하나로 이루어진 문자열Input: paragraph = "Bob hit a ball, the hit BALL flew far after it was hit.", banned = ["hit"]Output: "ball"  직관 및 접근잠깐!!해당 글에 사용된 세 함수 및 메서드에 대해, 본 블로그에 따로 글로 정리했으니아..
[Python/LeetCode] 937. Reorder Data in Log Files https://leetcode.com/problems/reorder-data-in-log-files/description/로그를 재정렬하라. 기준은 다음과 같다.1. 로그의 가장 앞 부분은 식별자다.2. 문자로 구성된 로그가 숫자 로그보다 앞에 온다.3. 문자 로그는 내용물들 가지고 사전식 순서대로 하되, 내용물들이 동일할 경우 식별자 가지고 사전식 순서대로 한다.4. 숫자 로그는 입력 순서대로 한다. 입력 : 문자열 logs출력 : 주어진 조건에 따라 재정렬된 문자열을 returnInput: logs = ["dig1 8 1 5 1","let1 art can","dig2 3 6","let2 own kit dig","let3 art zero"]Output: ["let1 art can","let3 art z..
[Python/LeetCode] 344. Reverse String https://leetcode.com/problems/reverse-string/description/문자열을 뒤집는 함수를 작성하시오.입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라.입출력 예시 : Input: s = ["h","e","l","l","o"]Output: ["o","l","l","e","h"] 처음 시도class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """ s = s[::-1]그러나, 채점기에 전달된 s는 수정되지 않음.GPT) 이 코드는 s를 뒤집은 새로운..
[Python/LeetCode] 125. Valid Palindrome https://leetcode.com/problems/valid-palindrome/description/주어진 문자열이 팰린드롬인지 아닌 지 판별하시오. 배경팰린드롬(Palindrome)- 앞뒤가 똑같은 단어나 문장 - ex. A man, a plan, a canal: Panama (문장부호는 무시했을 때 기준) 입력 : 문자열 s출력 : s가 팰린드롬이면 true, 아니면 false전략 일단 우리는 s에서 문장부호 같은 것들을 다 제거하고 볼거임. 그리고 대문자도 소문자도 변환해서 볼거임. 그러고 난 후에, 뒤집은 게 원본과 같다면? 팰린드롬. 정리하면,1. low_str = s.lower() 해서 새로운 문자열에 저장하고2. 소문자가 아닌 것들을 다 제거할거임. char.isalnum()으로 문자 ..
[Python/LeetCode] 20. Valid Parentheses 입력 :괄호로 된 입력값이 올바른지 판별하는 문제."()[]{}" 와 같은 입력이 주어졌을 때, 이 수식에 모순이 있으면 FALSE, 아니면 TRUE를 반환하면 됨. 풀이 :dictionary로 정의된 table과 stack을 사용. expression 관련 문제는 stack을 사용하면 좋다.class Solution: def isValid(self, s: str) -> bool: stack = [] table = { ')': '(', '}': '{', ']': '[', } # 스택 이용 예외 처리 및 일치 여부 판별 for char in s: if char ..