본문 바로가기

728x90

Algorithm/LeetCode

(9)
[LeetCode] Best Time to Buy and Self Stock 문제 You are given an array prices where prices[i] is the price of a given stock on the ith day. You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to sell that stock. Return the maximum profit you can achieve from this transaction. If you cannot achieve any profit, return 0. Input: prices = [7,1,5,3,6,4] Output: 5 Explanation: Buy..
[LeetCode] removeElement 문제 Given an integer array nums and an integer val, remove all occurrences of val in nums in-place. The relative order of the elements may be changed. Since it is impossible to change the length of the array in some languages, you must instead have the result be placed in the first part of the array nums. More formally, if there are k elements after removing the duplicates, then the first k eleme..
[LeetCode] Array-partition-i 문제 Given an integer array nums of 2n integers, group these integers into n pairs (a1, b1), (a2, b2), ..., (an, bn) such that the sum of min(ai, bi) for all i is maximized. Return the maximized sum. Input: nums = [1,4,3,2] Output: 4 Explanation: All possible pairings (ignoring the ordering of elements) are: 1. (1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3 2. (1, 3), (2, 4) -> min(1, 3) + mi..
[LeetCode] Two Sum Description Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order. input 값으로 아래와 같이 list와 target이 주어진다. Input: nums = [2,7,11,15], target = 9 output으로는 list에서 두 개의 원소를 뽑아서 더했을 때 targe..
[Leet Code] longest-palindromic-substring Given a string s, return the longest palindromic substring in s. Solve 입력값이 다음과 같을 때 "babad" 출력 예시는 다음과 같다. "bab" 주어진 문자열에서 가장 긴 팰린드롬의 부분 문자열을 출력하는 문제이다. 필자는 특출 난 알고리즘 기법을 아는 것이 아니기 때문에 무지성으로 정말 모든 부분 문자열을 구한 후 이를 List에 저장하고 가장 긴 문자열을 뽑아내는 방식으로 풀었다. # 필자가 푼 방식 class Solution: def longestPalindrome(self, s: str) -> str: length = len(s) result = [] if s == s[::-1]: return s for x in range(length):..
[Leet Code] Group Anagrams Given an array of strings strs, group the anagrams together. You can return the answer in any order. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once. Anagram 문자의 위치를 바꿨을 때 다른 뜻을 가진 단어로 바꾸는 것을 의미한다. Solve 입력값으로 문자열을 담은 배열이 주어진다. Input: strs = ["eat","tea","tan","ate","nat","bat"] 입력값 중에 Anagram이 ..
[LeetCode] Palindrome 고찰하기 Given a strings, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. 간단한 문제라 그냥 풀었지만 문득 내가 풀었던 방법 외에 다른 방법은 어떤 식이 있는지에 대해 궁금함이 생겼다. 먼저 내가 썼던 코드이다. def isPalindrome(self, s: str) -> bool: remove_specialized = "".join([x.lower() for x in s if x.isalnum()]) return remove_specialized == remove_specialized[::-1] 매개변수 `s`로 전달된 값을 반복문을 돌리면서 isalnum()을 이용하여 특수문자..
[Leet Code] Reorder Data in Log Files Leet Code 937번 로그파일 재정렬이다. 단순히 문제를 읽었을 때 파악하지 못한 개념이 있었다. 문제를 읽다 보면 하단의 2번 항목에 "lexicographically"라는 단어가 나온다. 찾아보니 "사전식 순서"라는 뜻이라고 해석된다. 즉 문제에서 요구하는 바가 정렬하는 내용이 같을 경우 식별자를 통해 사전식 순서로 정렬을 하라고 요구하는 것이다. 그런데 사전식 순서로 정렬을 하는 것이 어떤 의미일까? 검색 결과 sort()에 'key' 라는 키워드 인자를 설정하고 정렬 기준을 문제에서 요구하는 바와 같이 잡으면 된다. 아래는 풀이 코드이다. class Solution: def reorderLogFiles(self, logs: List[str]) -> List[str]: letter_log, d..

728x90
반응형