분류 전체보기 (2341) 썸네일형 리스트형 (Python3) - LeetCode (Medium) : 2182. Construct String With Repeat Limit https://leetcode.com/problems/construct-string-with-repeat-limit📕 풀이방법📔 입력 및 초기화key로는 알파뱃 value는 빈도 수를 저장할 해시맵 char_map, max_heap, 정답변수 answer, 이전 문자 prev를 선언 후 적절히 저장해줍니다. max_heap은 python에서 제공되지 않으므로 저장시 음수로 저장해줍니다.📔 풀이과정큰 문자부터 넣다가 reapeatLimit을 넘어가면 다음문자를 1개씩 넣어줍니다. 이 때 큰 문자와 이전에 넣은 문자가 같은 경우 적절히 빼서 repeatLimit만큼의 문자만 answer 뒤에 붙이도록 구현해야합니다. max_heap에 원소가 있는 동안 다음을 진행합니다.1. 이전에 있는 문자가 같고 .. (Python3) - LeetCode (Easy) : 3264. Final Array State After K Multiplication Operations I https://leetcode.com/problems/final-array-state-after-k-multiplication-operations-i간단 bottom up 전수조사 문제였습니다.📕 풀이방법📔 풀이과정k만큼 다음 연산을 수행합니다.1. nums에서 최솟값에 대한 index를 구해 min_num_idx에 저장합니다. 2. min_num_idx번째 값에 multiplier를 곱해줍니다.📔 정답 출력 | 반환nums를 반환합니다.📕 Code📔 Python3class Solution: def getFinalState(self, nums: List[int], k: int, multiplier: int) -> List[int]: for _ in range(k): .. (Python3) - LeetCode (Medium) : 1792. Maximum Average Pass Ratio https://leetcode.com/problems/maximum-average-pass-ratiomax heap을 사용해본 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 avg, heap pq를 선언 후 (1명이 추가될 경우 증가하는 합격율, 현재 합격율, index정보)를 하나의 tuple로 classes의 원소를 순회하며 계산해 저장합니다.📔 풀이과정extraStudents만큼 for loop를 수행하며, 1명 증가시 비율이 최대한 증가하는 순으로 extraStudents를 배분해줍니다. 1. python에서는 max heap이 없으므로 -형태로 tuple의 첫 번째 값을 저장하고 꺼냈을 때 -후 값을 구합니다. 2. classes에서 추가될 idx번째 수업에서 통과자와 전체 인원을 1씩 .. (Python3) - LeetCode (Medium) : 2593. Find Score of an Array After Marking All Elements https://leetcode.com/problems/continuous-subarrays주어진 배열 nums에서, 연속적인 부분 배열(subarray) 중에서 그 배열의 최댓값과 최솟값의 차이가 2 이하인 경우를 모두 찾아내는 문제입니다.각 원소를 한 번씩만 순회하면서 윈도우의 범위를 조절해 효율적으로 문제를 해결해야 합니다. 따라서 슬라이딩 윈도우(Sliding Window)와 모노톤 큐(Monotonic Queue)를 활용한 O(n)복잡도의 풀이를 고려합니다.📕 풀이방법📔 입력 및 초기화정답 변수 answer, left, 현 index에서 최댓값 max_queue, 최솟값 min_queue 선언 후 각각 0으로 초기화합니다.📔 풀이과정예시 입력: nums = [2, 4, 5, 3]배열의 각 .. (Python3) - LeetCode (Medium) : 2593. Find Score of an Array After Marking All Elements https://leetcode.com/problems/find-score-of-an-array-after-marking-all-elements📕 풀이방법📔 입력 및 초기화1. 우선순위 큐 pq, 정답 score, check 여부 ck배열 선언 후 적절히 초기화합니다. 2. nums의 원소를 순회하면 값, index정보를 pq에 저장합니다.📔 풀이과정min heap인 pq의 원소에 대해 while lop를 수행하며 다음을 진행합니다.1. 이미 check되어 있다면 continue 합니다. 2. check가 안된 원소를 score에 더하고 인접 index를 범위를 넘지 않았다면 check해줍니다. pq의 길이 n개 만큼 while loop를 진행해 인접 원소를 pop후 check해주므로 우선순위큐에 원.. (Python3) - LeetCode (Easy) : 2558. Take Gifts From the Richest Pile https://leetcode.com/problems/take-gifts-from-the-richest-pile간단 구현 문제였습니다.📕 풀이방법📔 풀이과정k초만큼 loop를 수행하며 주어진 계산을 수행합니다.1. 최댓값의 index를 찾아 해당 원소를 sqrt후 소수점 이하는 버립니다.📔 정답 출력 | 반환계산된 gifts의 원소들의 합을 반환합니다.📕 Code📔 Python3class Solution: def pickGifts(self, gifts: List[int], k: int) -> int: for _ in range(k): max_pile_idx = gifts.index(max(gifts)) gifts[max_pile_idx].. (Python3) - LeetCode (Medium) : 2779. Maximum Beauty of an Array After Applying Operation https://leetcode.com/problems/maximum-beauty-of-an-array-after-applying-operation/description/?envType=daily-question&envId=2024-12-11sliding window로 해결한 문제였습니다.📕 풀이방법📔 입력 및 초기화1. nums를 오름차순으로 정렬해줍니다. 2. left, num_len 선언 후 각각 0과 nums의 길이로 초기화합니다. 3. 정답변수 max_length 선언 후 0으로 초기화합니다.📔 풀이과정 슬라이딩 윈도우 정의슬라이딩 윈도우는 배열에서 특정 구간(범위)을 설정하고, 이 구간을 오른쪽으로 이동(sliding)하며 조건을 만족하는 구간 내 값들을 효율적으로 계산하는 알고리즘입니다.. (Python3) - LeetCode (Medium) : 2981. Find Longest Special Substring That Occurs Thrice I https://codecollector.tistory.com/manage/newpost/?type=post&returnURL=/manage/posts/ 티스토리좀 아는 블로거들의 유용한 이야기, 티스토리. 블로그, 포트폴리오, 웹사이트까지 티스토리에서 나를 표현해 보세요.www.tistory.com전수조사를 통해 해결한 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 각 부분 문자열을 key로 빈도수를 value로 할 hash map변수 sub_str_map을 선언 후 모든 부분 문자열의 빈도수를 저장합니다. 2. 정답 변수 max_length를 선언 후 -1로 초기화합니다.📔 풀이과정sub_str_map의 모든 item에 대해 순회하며 빈도수가 3이상이라면 max_length와 해당 부분 문자열.. 이전 1 2 3 4 5 6 7 8 ··· 293 다음