본문 바로가기
반응형

전체 글42

[Leetcode] 5. Longest Palindromic Substring 어제 재밌는 DP 문제를 풀고 그 맛에 취해(?) 다른 문제도 도전해봤다. [Leetcode] 2901. Longest Unequal Adjacent Groups Subsequence II역시 Computational Thinking 정수는 Dynamic Programming 문제 유형이다.많이 풀어보고 익숙해지지 않으면 발상하기 쉽지 않은 사고 방식이라 더욱 매력적이다.오랜만에 재밌는 문제였다. 이런 유형 문제를wch18735.tistory.com DP 분류에 들어가니 제일 먼저 눈에 들어온 단어가 Palindrome 이었다.이 유형 문제는 나올 때마다 살짝 쫄아있었는데, 주말이고 시간도 많아 도전했다.결과는 공책 빽빽하게 한 페이지를 다 쓰고서야 풀 수 있었는데, 분발해야지😂 문제 설명문자열 s가.. 2025. 5. 17.
[Leetcode] 2901. Longest Unequal Adjacent Groups Subsequence II 역시 Computational Thinking 정수는 Dynamic Programming 문제 유형이다.많이 풀어보고 익숙해지지 않으면 발상하기 쉽지 않은 사고 방식이라 더욱 매력적이다.오랜만에 재밌는 문제였다. 이런 유형 문제를 많이 풀어보고 싶다는 생각까지 들었다.물론 퇴근하고 여기에 갖다 바친 내 3시간은 전혀 재밌지 않다.사실 설명 자체가 DP 유형 문제 만들기 위해 어거지로 써놓은 느낌도 있고. 문제 설명문자열 배열 words와 정수 배열 groups가 주어진다.두 배열의 길이는 동일하며 각각의 인덱스 i는 하나의 단어와 해당 단어의 그룹을 나타낸다.우리는 [0, 1, ..., n-1]의 인덱스 중 일부를 골라 최장 부분수열(subsequence)을 선택해야 한다.단, 다음 조건을 만족해야 .. 2025. 5. 17.
[Leetcode] 2918. Minimum Equal Sum of Two Arrays After Replacing Zeros 문제 설명양의 정수로 이루어진 두 배열 nums1, nums2가 주어진다.이 두 배열에는 0이 포함될 수 있으며, 각 0은 **양의 정수(1 이상)**로 자유롭게 교체할 수 있다.목표는 다음 두 조건을 동시에 만족하도록 만드는 것이다.nums1과 nums2의 합이 같아야 한다.이 공통된 합은 가능한 한 최소여야 한다.가능하다면 그 최소 합을 반환하고,그럴 수 없다면 -1을 반환한다. 예시예제 1입력: nums1 = [3,2,0,1,0], nums2 = [6,5,0]출력: 12설명:nums1의 0을 2와 4로 대체 → [3,2,2,1,4], 합 = 12nums2의 0을 1로 대체 → [6,5,1], 합 = 12가능한 최소의 공통 합이다.예제 2입력: nums1 = [2,0,2,0], nums2 = [1,4.. 2025. 5. 11.
[Leetcode] 3342. Find Minimum Time to Reach Last Room II 문제를 열어보고 아직 하루가 안 지났나? 라는 생각을 했다.다행히 자세히 확인해보니 아래 문구가 추가되어 있었다. Moving between adjacent rooms takes one second for one move and two seconds for the next, alternating between the two.: 이동할 때마다 1초, 2초를 번갈아 가며 더해준다.* alternating: 번갈아가며 그러니 어제 풀이를 그대로 가져와, 더해주는 1s 와 2s 를 번갈아가도록 바꿔만 주면 될 것 같았다.이동이 전제되어 있으니 좌표 값의 짝수/홀수 여부가 더해주는 시간과 대응하는 사실을 이용하기만 하면 될 것 같았다.결과는 성공이었다. 자세한 풀이는 아래 포스팅을 참고해보자. [Leetcode.. 2025. 5. 9.
[Leetcode] 3341. Find Minimum Time to Reach Last Room I 어딘가 낯이 익은 문제여서 제출 이력을 열었더니 2024년 11월 치열하게 풀었던 흔적이 보였다.반년이 지난 지금, 그래도 조금은 성장했나보다. 문제 설명n × m 크기의 던전이 있다.이 던전은 격자 형태로 구성되어 있으며, 각 방은 상하좌우로 인접한 방으로 이동할 수 있다.2차원 배열 moveTime이 주어진다.moveTime[i][j]는 (i, j) 위치의 방으로 이동을 시작할 수 있는 최소 시간(초)을 의미한다.초기 위치는 (0, 0)이며 시작 시간은 0초이다.인접한 방으로의 이동은 항상 1초가 소요된다.목표는 (n - 1, m - 1) 위치까지 이동하는 데 걸리는 최소 시간을 구하는 것이다. 예시예제 1입력: moveTime = [[0,4],[4,4]]출력: 6설명:t = 0 → (0,0)t = .. 2025. 5. 7.
[Leetcode] 1920. Build Array from Permutation 문제 설명정수 배열 nums가 주어진다.이 배열은 0부터 nums.length - 1까지의 숫자가 중복 없이 무작위로 섞인 zero-based permutation이다.이제 동일한 길이의 배열 ans를 다음 규칙에 따라 구성해야 한다.모든 i (0 ≤ i ans[i] = nums[nums[i]] 조건(제약사항)1 0 모든 nums[i]는 서로 다르다.즉, nums는 정확히 0부터 n-1까지의 정수가 한 번씩 등장하는 배열이다.풀이아주 쉽다.Python 으로 풀 때, List Comprehension 하나면 바로 풀린다.class Solution: def buildArray(self, nums: List[int]) -> List[int]: return [nums[i] for i in nu.. 2025. 5. 7.
반응형