leetcode
-
Problem : https://leetcode.com/problems/shifting-letters-ii Difficulty : Medium Status : Solved Time : 00:11:44 문제 설명 더보기영소문자로 구성된 문자열 s와, 2차원 정수 배열 shift를 입력이 주어집니다. shift[i] = [start_i, end_i, direction_i]dlek.모든 i에 대해서, 인덱스 start_i부터 인덱스 end_i(를 포함한)의 모든 문자는 direction_i=1일때 앞으로 shift되며 direction_i = 0일때 뒤로 shift됩니다. 문자가 앞으로 shift된다는 의미는, 이 문자를 알파벳 상의 다음 문자로 교체함을 의미합니다('z' 는 'a'가 되도록 순환합니다)...
2381. Shifting Letters IIProblem : https://leetcode.com/problems/shifting-letters-ii Difficulty : Medium Status : Solved Time : 00:11:44 문제 설명 더보기영소문자로 구성된 문자열 s와, 2차원 정수 배열 shift를 입력이 주어집니다. shift[i] = [start_i, end_i, direction_i]dlek.모든 i에 대해서, 인덱스 start_i부터 인덱스 end_i(를 포함한)의 모든 문자는 direction_i=1일때 앞으로 shift되며 direction_i = 0일때 뒤로 shift됩니다. 문자가 앞으로 shift된다는 의미는, 이 문자를 알파벳 상의 다음 문자로 교체함을 의미합니다('z' 는 'a'가 되도록 순환합니다)...
2025.01.05 -
Problem : https://leetcode.com/problems/unique-length-3-palindromic-subsequences Difficulty : Medium Status : Solved Time : 00:12:21 문제 설명 더보기문자열 s가 주어졌을 때, s의 부분 문자열 중 길이 3의 유일한 펠린드롬의 개수를 반환하라.같은 부분 문자열을 만드는 여러 방법이 있다고 해도, 이는 1개로 세어짐에 유의하라. 펠린드롬은 앞으로, 뒤로 읽어도 같은 문자열을 의미한다.부분 문자열은 원본 문자열에서 일부 문자(안 쓸 수도 있다)를, 남은 문자들의 상대적인 순서를 바꾸지 않고 제거함으로써 얻어지는 새로운 문자열이다. 풀이 해시를 사용하자. (거듭 말하지만, 파이썬에서 해시 - set, ..
1930. Unique Length-3 Palindromic SubsequencesProblem : https://leetcode.com/problems/unique-length-3-palindromic-subsequences Difficulty : Medium Status : Solved Time : 00:12:21 문제 설명 더보기문자열 s가 주어졌을 때, s의 부분 문자열 중 길이 3의 유일한 펠린드롬의 개수를 반환하라.같은 부분 문자열을 만드는 여러 방법이 있다고 해도, 이는 1개로 세어짐에 유의하라. 펠린드롬은 앞으로, 뒤로 읽어도 같은 문자열을 의미한다.부분 문자열은 원본 문자열에서 일부 문자(안 쓸 수도 있다)를, 남은 문자들의 상대적인 순서를 바꾸지 않고 제거함으로써 얻어지는 새로운 문자열이다. 풀이 해시를 사용하자. (거듭 말하지만, 파이썬에서 해시 - set, ..
2025.01.04 -
Problem : https://leetcode.com/problems/maximum-score-after-splitting-a-stringDifficulty : EasyStatus : SolvedTime : 00:04:33문제 설명 더보기0, 1로 구성된 문자열 s가 주어졌을 때, 이 문자열을 비어있지 않은 부분 문자열 둘로 나눴을 때 최대 스코어를 반환하라.문자열을 나눈 후의 스코어는 왼쪽 부분문자열의 0의 개수와 오른쪽 부분문자열의 1의 개수의 합이다. 풀이 약간의 창의력 문제.오른쪽의 1의 개수를 먼저 다 세 놓고, 모든 split case를 슬라이딩 윈도우(즉 포인터를 하나씩 옮겨가며) 방식으로 구해볼 수 있다.만약 나누는 부분이 1이면 이면 오른쪽 점수가 1 감소(오른쪽의 1이 하나 왼쪽으로 ..
1422. Maximum Score After Splitting a StringProblem : https://leetcode.com/problems/maximum-score-after-splitting-a-stringDifficulty : EasyStatus : SolvedTime : 00:04:33문제 설명 더보기0, 1로 구성된 문자열 s가 주어졌을 때, 이 문자열을 비어있지 않은 부분 문자열 둘로 나눴을 때 최대 스코어를 반환하라.문자열을 나눈 후의 스코어는 왼쪽 부분문자열의 0의 개수와 오른쪽 부분문자열의 1의 개수의 합이다. 풀이 약간의 창의력 문제.오른쪽의 1의 개수를 먼저 다 세 놓고, 모든 split case를 슬라이딩 윈도우(즉 포인터를 하나씩 옮겨가며) 방식으로 구해볼 수 있다.만약 나누는 부분이 1이면 이면 오른쪽 점수가 1 감소(오른쪽의 1이 하나 왼쪽으로 ..
2025.01.01 -
Problem : https://leetcode.com/problems/minimum-cost-for-tickets Difficulty : Medium Status : Solved Time : 00:17:48 문제 설명 더보기당신은 미리 일 년치 기차 여행을 계획하고 있습니다. 당신이 일 년간 기차를 탈 일자들이 정수 배열 'days'로 주어집니다. 각각의 day는 1 ~ 365사이의 정수입니다.기차표는 세 가지 다른 방법으로 판매됩니다. costs[0] 달러에 파는 1일 이용권costs[1] 달러에 파는 7일 이용권costs[2] 달러에 파는 30일 이용권 이 이용권들은 연속되는 수 일간의 여행동안 허용됩니다. 예를 들어, 우리가 2일차에 7일 이용권을 샀다면, 우리는 2, 3, 4, 5, 6, 7..
983. Minimum Cost For TicketsProblem : https://leetcode.com/problems/minimum-cost-for-tickets Difficulty : Medium Status : Solved Time : 00:17:48 문제 설명 더보기당신은 미리 일 년치 기차 여행을 계획하고 있습니다. 당신이 일 년간 기차를 탈 일자들이 정수 배열 'days'로 주어집니다. 각각의 day는 1 ~ 365사이의 정수입니다.기차표는 세 가지 다른 방법으로 판매됩니다. costs[0] 달러에 파는 1일 이용권costs[1] 달러에 파는 7일 이용권costs[2] 달러에 파는 30일 이용권 이 이용권들은 연속되는 수 일간의 여행동안 허용됩니다. 예를 들어, 우리가 2일차에 7일 이용권을 샀다면, 우리는 2, 3, 4, 5, 6, 7..
2024.12.31 -
Problem : https://leetcode.com/problems/maximum-sum-of-distinct-subarrays-with-length-k/description/ Difficulty : Medium Status : Solved Time : 00:00:00 풀이 간단하긴 한데, 어떻게 더 최적화할지를 생각해보게 되는 문제. 기본적으로는 딕셔너리를 사용하여 distinct한 숫자를 관리하면 된다. k개의 fix된 길이니 슬라이딩 윈도우를 수행하며 조건에 맞을 때마다 정답을 갱신하면 되겠다. 워낙 많이 보이는 타입의 문제다 보니, 최적화가 역시 관건이 될 것 같다. 풀이코드class Solution: def maximumSubarraySum(self, nums: List[int], k: in..
2461. Maximum Sum of Distinct Subarrays With Length KProblem : https://leetcode.com/problems/maximum-sum-of-distinct-subarrays-with-length-k/description/ Difficulty : Medium Status : Solved Time : 00:00:00 풀이 간단하긴 한데, 어떻게 더 최적화할지를 생각해보게 되는 문제. 기본적으로는 딕셔너리를 사용하여 distinct한 숫자를 관리하면 된다. k개의 fix된 길이니 슬라이딩 윈도우를 수행하며 조건에 맞을 때마다 정답을 갱신하면 되겠다. 워낙 많이 보이는 타입의 문제다 보니, 최적화가 역시 관건이 될 것 같다. 풀이코드class Solution: def maximumSubarraySum(self, nums: List[int], k: in..
2024.11.19 -
Problem : https://leetcode.com/problems/defuse-the-bomb Difficulty : Easy Status : Solved Time : 00:06:22 문제 설명 풀이 슬라이딩 윈도우 문제. k가 주어진 세 가지 경우일 때를 각각 구현하면 쉽게 풀린다. 시간복잡도는 O(N). 풀이 코드class Solution: def decrypt(self, code: List[int], k: int) -> List[int]: n = len(code) result = [0]*n if k == 0 : return result if k > 0 : result[0] = sum..
1652. Defuse the BombProblem : https://leetcode.com/problems/defuse-the-bomb Difficulty : Easy Status : Solved Time : 00:06:22 문제 설명 풀이 슬라이딩 윈도우 문제. k가 주어진 세 가지 경우일 때를 각각 구현하면 쉽게 풀린다. 시간복잡도는 O(N). 풀이 코드class Solution: def decrypt(self, code: List[int], k: int) -> List[int]: n = len(code) result = [0]*n if k == 0 : return result if k > 0 : result[0] = sum..
2024.11.18