본문 바로가기

전체 글

(151)
[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()으로 문자 ..
[CS기술면접] 네트워크 예상 질문&답변 정리 지금 실제 면접에서 질문이 들어와서내가 직접 말로 대답하는 상황이라 가정하고,구어체로 간결하게 일목요연하게 작성하기.Layered Protocol Reference ModelOSI 7 layer에 대해 설명해주세요.https://cuffyluv.tistory.com/98더보기OSI 7 layer은 ISO에서 만든 대표적인 레이어드 프로토콜 참조 모델입니다. 다소 학문적이고 이론적인 성격이 있으며, 현대 네트워크에서는 TCP/IP 모델이 사실상의 표준으로 사용됩니다. OSI 7 layer는 7개의 레이어로 되어 있으며, 위에서부터 응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층으로 이루어져 있습니다. OSI 7 layer의 레이어링은 각 레이어를 독립적으로 ..
[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 ..