파이썬
-
Problem : https://leetcode.com/problems/count-number-of-maximum-bitwise-or-subsets Difficulty : Medium Status : Solved Time : 00:11:57 문제 설명 더보기정수 배열 nums가 주어질때, nums의 부분집합을 bitwise OR 연산하였을 때 가능한 가장 큰 값을 찾고, 최대 bitwise OR값을 도출하는 공집합이 아닌 서로 다른 부분집합의 개수를 반환하라. 어떤 배열 a가 어떤 배열 b의 부분집합이려면, a는 b에서 특정 원소(0개도 가능)를 제거함으로써 얻어질 수 있어야 한다. 두 부분집합은 선택된 원소의 인덱스가 다르다면 다르다고 취급된다. 어떤 배열 a의 bitwise OR은 a[0] OR a..
2044. Count Number of Maximum Bitwise-OR SubsetsProblem : https://leetcode.com/problems/count-number-of-maximum-bitwise-or-subsets Difficulty : Medium Status : Solved Time : 00:11:57 문제 설명 더보기정수 배열 nums가 주어질때, nums의 부분집합을 bitwise OR 연산하였을 때 가능한 가장 큰 값을 찾고, 최대 bitwise OR값을 도출하는 공집합이 아닌 서로 다른 부분집합의 개수를 반환하라. 어떤 배열 a가 어떤 배열 b의 부분집합이려면, a는 b에서 특정 원소(0개도 가능)를 제거함으로써 얻어질 수 있어야 한다. 두 부분집합은 선택된 원소의 인덱스가 다르다면 다르다고 취급된다. 어떤 배열 a의 bitwise OR은 a[0] OR a..
2024.10.18 -
Problem : https://leetcode.com/problems/maximum-swap/ Difficulty : Medium Status : Solved Time : 00:01:44 문제 설명 더보기정수 num을 입력으로 받는다. 단 한 번 두 자릿수를 교체할 수 있고, 이를 통해 가장 큰 숫자를 만들어야 한다. 얻을 수 있는 가장 큰 숫자를 반환하라. 풀이 우선, 문제 조건이 그렇게 빡빡하지 않아 브루트포스로 풀린다. 단순히 모든 경우를 테스트해서 가장 큰 숫자를 반환하면 된다. 풀이 코드(브루트포스)class Solution: def maximumSwap(self, num: int) -> int: length = len(str(num)) result = num..
670. Maximum SwapProblem : https://leetcode.com/problems/maximum-swap/ Difficulty : Medium Status : Solved Time : 00:01:44 문제 설명 더보기정수 num을 입력으로 받는다. 단 한 번 두 자릿수를 교체할 수 있고, 이를 통해 가장 큰 숫자를 만들어야 한다. 얻을 수 있는 가장 큰 숫자를 반환하라. 풀이 우선, 문제 조건이 그렇게 빡빡하지 않아 브루트포스로 풀린다. 단순히 모든 경우를 테스트해서 가장 큰 숫자를 반환하면 된다. 풀이 코드(브루트포스)class Solution: def maximumSwap(self, num: int) -> int: length = len(str(num)) result = num..
2024.10.18 -
Problem : https://leetcode.com/problems/smallest-range-covering-elements-from-k-lists Difficulty : Hard Status : Solved Time : 00:18:12 문제 설명 더보기k개의 단조증가하는 순서(감소하지 않는 순서)로 정렬된 리스트를 가지고 있다. k개의 리스트 각각의 적어도 하나의 수를 포함하는 가장 작은 범위를 구하여라. 우리는 다음 상황 ( b-a 풀이 쪼오금 마음에 안드는 풀이긴 하지만, 이렇게 풀 수 있다! 를 보려주려고 한다. 슬라이딩 윈도우를 생각해 보자. 이 슬라이딩 윈도우는 가급적 k개 집합의 모든 수를 최소한으로 보유하는 게 목적이다. 즉 다음 기능이 필요하다.숫자와 인덱스 정보를 저장할 큐덱에..
632. Smallest Range Covering Elements from K ListsProblem : https://leetcode.com/problems/smallest-range-covering-elements-from-k-lists Difficulty : Hard Status : Solved Time : 00:18:12 문제 설명 더보기k개의 단조증가하는 순서(감소하지 않는 순서)로 정렬된 리스트를 가지고 있다. k개의 리스트 각각의 적어도 하나의 수를 포함하는 가장 작은 범위를 구하여라. 우리는 다음 상황 ( b-a 풀이 쪼오금 마음에 안드는 풀이긴 하지만, 이렇게 풀 수 있다! 를 보려주려고 한다. 슬라이딩 윈도우를 생각해 보자. 이 슬라이딩 윈도우는 가급적 k개 집합의 모든 수를 최소한으로 보유하는 게 목적이다. 즉 다음 기능이 필요하다.숫자와 인덱스 정보를 저장할 큐덱에..
2024.10.14 -
Problem : Difficulty : Medium Status : Solved Time : 00:31:51 문제 설명 더보기0부터 n-1번까지의 숫자가 매겨진 n명의 친구들의 파티가 있다. 이 파티에는 0부터 무한대까지 숫자가 매겨진 무한대의 의자가 있다. 만약 한 친구가 파티에 도착한다면, 그들은 가장 적은 숫자의 점유되지 않은 의자에 앉는다. * 예를 들어, 한 친구가 왔을 때 0, 1, 5 의자가 점유되었다면 그 친구는 2번 의자에 앉을 것이다. 친구가 파티를 떠날때, 그 친구가 떠나는 순간에 그 친구의 의자는 점유되지 않은 상태가 된다. 만약 다른 친구가 동시에 도착한다면, 그들은 그 의자에 앉을 수 있다. 2차원의 0-인덱스 times 배열과 정수 targetFriend을 입력으로 받는다..
1942. The Number of the Smallest Unoccupied ChairProblem : Difficulty : Medium Status : Solved Time : 00:31:51 문제 설명 더보기0부터 n-1번까지의 숫자가 매겨진 n명의 친구들의 파티가 있다. 이 파티에는 0부터 무한대까지 숫자가 매겨진 무한대의 의자가 있다. 만약 한 친구가 파티에 도착한다면, 그들은 가장 적은 숫자의 점유되지 않은 의자에 앉는다. * 예를 들어, 한 친구가 왔을 때 0, 1, 5 의자가 점유되었다면 그 친구는 2번 의자에 앉을 것이다. 친구가 파티를 떠날때, 그 친구가 떠나는 순간에 그 친구의 의자는 점유되지 않은 상태가 된다. 만약 다른 친구가 동시에 도착한다면, 그들은 그 의자에 앉을 수 있다. 2차원의 0-인덱스 times 배열과 정수 targetFriend을 입력으로 받는다..
2024.10.11 -
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