파이썬
-
Problem : https://leetcode.com/problems/maximum-width-ramp Difficulty : Medium Status : Solved Time : 00:37:55 문제 설명 더보기정수 배열 nums 내의 램프(ramp, 경사면)는 i 정수 배열 nums가 주어질 때 nums 내 램프 중 최대 너비를 구하여라. 만약 램프가 없다면 0을 반환하라. 풀이 풀면서 이게 맞나? 싶었다. 실제로도 시간 및 공간 효율이 하위 5%를 찍는 걸 보면... 더 나은 방식이 있을 것도 같다. nums와 nums의 원래 인덱스를 정렬할텐데, 이 때 정렬 기준은 (숫자의 크기 내림차순, 원래 인덱스 내림차순)이 된다.이제 이 정렬된 nums를 탐색할텐데, 이 때 다음이 성립한다.다음 nu..
962. Maximum Width RampProblem : https://leetcode.com/problems/maximum-width-ramp Difficulty : Medium Status : Solved Time : 00:37:55 문제 설명 더보기정수 배열 nums 내의 램프(ramp, 경사면)는 i 정수 배열 nums가 주어질 때 nums 내 램프 중 최대 너비를 구하여라. 만약 램프가 없다면 0을 반환하라. 풀이 풀면서 이게 맞나? 싶었다. 실제로도 시간 및 공간 효율이 하위 5%를 찍는 걸 보면... 더 나은 방식이 있을 것도 같다. nums와 nums의 원래 인덱스를 정렬할텐데, 이 때 정렬 기준은 (숫자의 크기 내림차순, 원래 인덱스 내림차순)이 된다.이제 이 정렬된 nums를 탐색할텐데, 이 때 다음이 성립한다.다음 nu..
2024.10.10 -
Problem : https://leetcode.com/problems/minimum-add-to-make-parentheses-valid Difficulty : Medium Status : Solved Time : 00:00:32 문제 설명 더보기괄호 문자열은 아래 조건을 만족할 때 유효하다고 한다. * 문자열이 비었거나,* A, B가 유효한 문자열일때 AB의 형태이거나* A가 유효한 문자열일때 (A)의 형태일 때. 괄호 문자열 s가 주어진다. 한 번의 이동에서 문자열의 어떤 부분에 괄호를 하나씩 삽입할 수 있다.* 예를 들어, s="()))"이라면 여는 괄호를 삽입해서 "(()))"로 만들거나 닫는 괄호를 삽입해서 "())))"를 만들 수 있다.s를 유효하게 만드는 최소 이동을 구하여라. 풀이 ....
921. Minimum Add to Make Parentheses ValidProblem : https://leetcode.com/problems/minimum-add-to-make-parentheses-valid Difficulty : Medium Status : Solved Time : 00:00:32 문제 설명 더보기괄호 문자열은 아래 조건을 만족할 때 유효하다고 한다. * 문자열이 비었거나,* A, B가 유효한 문자열일때 AB의 형태이거나* A가 유효한 문자열일때 (A)의 형태일 때. 괄호 문자열 s가 주어진다. 한 번의 이동에서 문자열의 어떤 부분에 괄호를 하나씩 삽입할 수 있다.* 예를 들어, s="()))"이라면 여는 괄호를 삽입해서 "(()))"로 만들거나 닫는 괄호를 삽입해서 "())))"를 만들 수 있다.s를 유효하게 만드는 최소 이동을 구하여라. 풀이 ....
2024.10.09 -
Problem : https://leetcode.com/problems/minimum-number-of-swaps-to-make-the-string-balanced Difficulty : Medium Status : Solved Time : 00:01:09 문제 설명 더보기0-인덱스의 짝수 길이 n의 문자열을 입력으로 받는다. 이 문자열은 정확히 n / 2 개의 여는 대괄호 '['와 닫는 대괄호 ']'로 구성되어 있다. 문자열은 다음 조건을 만족할 때 균형잡혔다고 말할 수 있다. * 문자열이 비었거나,* A, B가 균형잡힌 문자열일때 AB의 형태이거나* C가 균형잡힌 문자열일때 [C]의 형태일 때. 임의의 두 개의 원소를 어떤 개수로든 교환할 수 있다고 할 때, 문자열 s를 균형잡히게 만들 수 있는 ..
1963. Minimum Number of Swaps to Make the String BalancedProblem : https://leetcode.com/problems/minimum-number-of-swaps-to-make-the-string-balanced Difficulty : Medium Status : Solved Time : 00:01:09 문제 설명 더보기0-인덱스의 짝수 길이 n의 문자열을 입력으로 받는다. 이 문자열은 정확히 n / 2 개의 여는 대괄호 '['와 닫는 대괄호 ']'로 구성되어 있다. 문자열은 다음 조건을 만족할 때 균형잡혔다고 말할 수 있다. * 문자열이 비었거나,* A, B가 균형잡힌 문자열일때 AB의 형태이거나* C가 균형잡힌 문자열일때 [C]의 형태일 때. 임의의 두 개의 원소를 어떤 개수로든 교환할 수 있다고 할 때, 문자열 s를 균형잡히게 만들 수 있는 ..
2024.10.09 -
Problem : https://leetcode.com/problems/minimum-string-length-after-removing-substrings Difficulty : Easy Status : Solved Time : 00:03:54 문제 설명 더보기대문자 알파뱃으로만 이루어진 문자열 s를 입력으로 받는다. 이 문자열에 어떤 동작을 시행할 수 있는데, 한 동작에서 s 내의 "AB" 혹은 "CD"로 등장하는 부분문자열을 지울 수 있다. 이 동작으로 얻을 수 있는 가능한 가장 작은 문자열의 길이를 구하여라. 부분문자열을 지운 후에 새로운 "AB" 혹은 "CD" 문자열이 생성될 수 있음을 명심하라. 풀이 그리디하게, 스택을 사용하면 쉽게 풀 수 있다.스택에 문자열의 문자들을 저장하되, 현재 문..
2696. Minimum String Length After Removing SubstringsProblem : https://leetcode.com/problems/minimum-string-length-after-removing-substrings Difficulty : Easy Status : Solved Time : 00:03:54 문제 설명 더보기대문자 알파뱃으로만 이루어진 문자열 s를 입력으로 받는다. 이 문자열에 어떤 동작을 시행할 수 있는데, 한 동작에서 s 내의 "AB" 혹은 "CD"로 등장하는 부분문자열을 지울 수 있다. 이 동작으로 얻을 수 있는 가능한 가장 작은 문자열의 길이를 구하여라. 부분문자열을 지운 후에 새로운 "AB" 혹은 "CD" 문자열이 생성될 수 있음을 명심하라. 풀이 그리디하게, 스택을 사용하면 쉽게 풀 수 있다.스택에 문자열의 문자들을 저장하되, 현재 문..
2024.10.07 -
Problem : https://leetcode.com/problems/make-sum-divisible-by-p Difficulty : Medium Status : Solved Time : 00:39:33 문제 설명 더보기양의 정수로 구성된 배열 nums가 주어졌을때, 남은 원소의 합이 p로 나누어지는 가장 작은 부분배열(길이가 0일 수도 있다)을 제거하도록 한다. 전체 배열을 제거하는 것은 허락되지 않는다. 그 가장 작은 부분배열의 길이를 반환하라. 만약 불가능하다면 -1을 반환하라. 부분배열은 배열의 연속된 원소로 이루어진 구간을 의미한다. 풀이 부분합으로 풀어야하나... DP로 풀어야하나... 꽤 고민하다가 DP를 선택했고, 가차없이 틀렸다. 부분합으로 풀이해보도록 하자. 우리는 조금 다른 ..
1590. Make Sum Divisible by PProblem : https://leetcode.com/problems/make-sum-divisible-by-p Difficulty : Medium Status : Solved Time : 00:39:33 문제 설명 더보기양의 정수로 구성된 배열 nums가 주어졌을때, 남은 원소의 합이 p로 나누어지는 가장 작은 부분배열(길이가 0일 수도 있다)을 제거하도록 한다. 전체 배열을 제거하는 것은 허락되지 않는다. 그 가장 작은 부분배열의 길이를 반환하라. 만약 불가능하다면 -1을 반환하라. 부분배열은 배열의 연속된 원소로 이루어진 구간을 의미한다. 풀이 부분합으로 풀어야하나... DP로 풀어야하나... 꽤 고민하다가 DP를 선택했고, 가차없이 틀렸다. 부분합으로 풀이해보도록 하자. 우리는 조금 다른 ..
2024.10.06 -
Problem : https://leetcode.com/problems/find-the-length-of-the-longest-common-prefix Difficulty : Hard Status : Solved Time : 00:16:41 문제 설명더보기비어있지 않은 문자열로 구성된 n 크기의 words 배열을 입력으로 받는다.우리는 word 문자열에 대한 점수를 word 문자가 words[i]의 접두사를 만족하는 words[i]의 개수로 정의한다. * 예를 들어, words = ["a", "ab", "abc", "cab"]라면 "ab"의 점수는 2이다. "ab"는 "ab"와 "abc"의 접두사이기 때문이다. 크기가 n인 answer 배열을 반환하라. 이 때 answer[i]는 words[i]의 모든..
2416. Sum of Prefix Scores of StringsProblem : https://leetcode.com/problems/find-the-length-of-the-longest-common-prefix Difficulty : Hard Status : Solved Time : 00:16:41 문제 설명더보기비어있지 않은 문자열로 구성된 n 크기의 words 배열을 입력으로 받는다.우리는 word 문자열에 대한 점수를 word 문자가 words[i]의 접두사를 만족하는 words[i]의 개수로 정의한다. * 예를 들어, words = ["a", "ab", "abc", "cab"]라면 "ab"의 점수는 2이다. "ab"는 "ab"와 "abc"의 접두사이기 때문이다. 크기가 n인 answer 배열을 반환하라. 이 때 answer[i]는 words[i]의 모든..
2024.09.25