본문 바로가기

Algorithm

(2138)
(Python3) - LeetCode (easy) 1929. Concatenation of Array https://leetcode.com/problems/concatenation-of-array/description/간단 list 내장 함수 extend를 사용해본 문제였습니다.📕 풀이방법📔 풀이과정list에 원소 하나씩 뒤에 삽입은 append, 다른 list를 뒤에 추가하는 함수는 extend 사용하면 됩니다. 따라서 nums를 nums에 extend해줍니다.📔 정답 출력 | 반환extend된 nums결과를 반환합니다.📕 Code📔 Python3class Solution(object): def getConcatenation(self, nums): """ :type nums: List[int] :rtype: List[int] """ ..
(Python) - LeetCode (easy) 1925. Count Square Sum Triples https://leetcode.com/problems/count-square-sum-triples/description/전수조사 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 변수 ans선언 후 0으로 초기화합니다.📔 풀이과정$ a^2 + b^2 = c^2 $에서 c = $\sqrt{a^2 + b^2}$ 가 됩니다.1부터 n까지 이중 for loop를 수행하며 다음을 수행합니다.를 수행했을 때 c값이 정수면서 n이하라면 ans를 1씩 추가합니다.📔 정답 출력 | 반환ans를 반환합니다.📕 Code📔 pythonclass Solution(object): def countTriples(self, n): ans = 0 for a in range(1, n+1): ..
(Python) - LeetCode (easy) 1920. Build Array from Permutation https://leetcode.com/problems/build-array-from-permutation/description/간단 구현 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 변수 ans를 선언합니다.📔 풀이과정nums의 원소를 순회하며 ans에 nums[nums[i]]값을 넣어줍니다.📔 정답 출력 | 반환ans를 반환합니다.📕 Code📔 Python3class Solution(object): def buildArray(self, nums): """ :type nums: List[int] :rtype: List[int] """ ans = [] for i in range(len(nums)): ..
(C++, Python) - LeetCode (easy) 1913. Maximum Product Difference Between Two Pairs https://leetcode.com/problems/maximum-product-difference-between-two-pairs/간단한 greedy 문제였습니다.📕 풀이방법📔 입력 및 초기화nums를 오름차순으로 정렬해줍니다.📔 풀이과정차이가 가장 커지기 위해서는 곱의 최댓값과 최솟값의 차이를 구하면 됩니다.1. 곱이 가장 큰 경우: nums에서 최댓값과 두 번째로 큰 값을 곱하는 경우입니다. 즉, 오름차순으로 정렬했을 때 nums.size() - 1번째 값과 num.size() - 2번째 값을 곱하면 됩니다.2. 곱이 가장 작은 경우: nums에서 최솟값과 두 번째로 작은 값을 곱하는 경우입니다.📔 정답 출력 | 반환1번 경우의 값에서 2번 경우의 값을 뺀 값을 반환합니다.📕 Code📔..
(C++) - LeetCode (easy) 539. Minimum Time Difference https://leetcode.com/problems/remove-one-element-to-make-the-array-strictly-increasing/greedy로 푼 문제였습니다.📕 풀이방법📔 입력 및 초기화내리막 구간의 개수 descCnt, nums의 크기 sz를 선언 후 적절히 초기화해줍니다.📔 풀이과정예시 1에서는 20과 5구간, 예시 2에서는 20과 15구간으로 모두 내리막 구간이 하나입니다.i-1이 i+1원소보다 큰 경우에는 i+1번째 원소가 i와 i-1과 비교했을 때 가장 작으므로 i+1 번째의 원소를 삭제해야합니다.반대의 경우에는 i+1번쨰 원소가 i보단 작으면서 i-1보단 크므로 i번째 원소를 삭제해야 오르막 구간을 유지할 수 있습니다. 1. nums의 원소를 순회하며 다음을 ..
(C++) - LeetCode (easy) 539. Minimum Time Difference https://leetcode.com/problems/minimum-time-difference/description/?envType=daily-question&envId=2024-09-16시계의 분 차이를 계산하는 구현문제였습니다.📕 풀이방법📔 입력 및 초기화1. 각 timePoint를 분으로 환산한 vector minutes를 선언 후 해당 문자열로 분으로 환산하는 getTotalMinute를 timePoints별로 수행해 minutes에 저장합니다2. minutes를 오름차순으로 정렬해줍니다. 이로써 이웃한 시간간의 차이가 최소화 됩니다. 3. 정답 변수 minDiff를 선언 후 int max값으로 저장합니다.(약 10억)📔 풀이과정1. minutes의 원소를 돌며 다음을 수행합니다.  1-1..
(C++) - LeetCode (easy) 1903. Largest Odd Number in String https://leetcode.com/problems/largest-odd-number-in-string/description/📕 풀이방법📔 입력 및 초기화정답 변수 ans와 홀수가 나온 num의 index oddIdx를 선언해줍니다.📔 풀이과정큰 홀수는 가장 마지막에 나온 홀수를 기준으로 자른 부분 문자열입니다. 다음 두 가지로 나눠 생각해봅니다. num은 짝수 문자열로 이뤄진 집합과 홀수 문자열로 이뤄진 집합으로 나눠 집니다.1. 짝수집합-홀수집합 : 두 문자열들의 집합을 합친 홀수가 가장 깁니다.2. 홀수집합-짝수집합 : 홀수집합이 가장 깁니다.이 두 가지를 합해 가장 마지막에 나온 홀수의 index를 가져와 이를 기준으로 부분 문자열을 자르게 되면 정답이 됩니다.📔 정답 출력 | 반환ans..
(C++) - LeetCode (easy) 1897. Redistribute Characters to Make All Strings Equal https://leetcode.com/problems/redistribute-characters-to-make-all-strings-equal/description/📕 풀이방법📔 입력 및 초기화각 words의 모든 aphabat의 빈도수를 각각 key, value로 저장할 alphaMap을 선언 후 값을 적절히 저장해줍니다.📔 풀이과정alphaMap에 대해 loop를 수행하며 다음을 진행합니다.1. 각 iterator의 second값이 빈도수이므로 words개수로 나누어 떨어지지 않는다면 false를 반환합니다.2. for loop탈출 후 true를 반환합니다.📕 Code📔 C++class Solution {public: bool makeEqual(vector& words) { ..