본문 바로가기

easy67

[Leetcode] 1768. Merge Strings Alternately 문제 : https://leetcode.com/problems/merge-strings-alternately/description/ 두 개의 문자열 word1과 word2가 주어집니다. 두 문자열을 번갈아가면서 시작 문자열이 word1이 되도록 문자를 추가하여 합칩니다. 만약 한 문자열이 다른 문자열보다 길다면, 추가 문자는 합쳐진 문자열의 끝에 붙입니다. 합쳐진 문자열을 반환합니다. word1, word2를 앞에서부터 탐색하면서 정답 문자열의 뒤에 추가해나갑니다. 만약 둘 중 하나의 문자열에 더 이상 추가한 문자가 없는 경우 문자가 없는 문자열은 무시합니다. 두 개의 문자열 모두 더 이상 추가할 문자가 없을때까지 이를 반복합니다. word1의 사이즈를 n, word2의 사이즈를 m이라 할 때, 시간복잡.. 2023. 4. 18.
[Leetcode]1431. Kids With the Greatest Number of Candies 문제 : https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/description/ 주어진 정수 배열 candies는 각각의 candies[i]가 i번째 아이가 가진 사탕 수를 나타냅니다. 또한, extraCandies라는 정수가 주어지는데, 이는 당신이 가진 추가 사탕 수를 나타냅니다. n명의 아이가 있을 때, i번째 아이에게 extraCandies를 모두 준 후, i번째 아이가 모든 아이 중에서 가장 많은 사탕을 가지게 될 경우, 그 결과를 true로 하는 n개의 원소를 갖는 boolean 배열 result를 반환하세요. 만약 그렇지 않은 경우 false로 합니다. 여러 아이들이 가장 많은 사탕을 가질수도 있습니다. candi.. 2023. 4. 17.
[Leetcode] 20. Valid Parentheses 문제 : https://leetcode.com/problems/valid-parentheses/description/ '(', ')', '{', '}', '[', ']' 문자만 포함하는 문자열 s가 주어집니다. 입력 문자열이 유효한지 여부를 판단하세요. 입력 문자열이 유효한 경우는 다음과 같습니다. 열린 괄호는 같은 종류의 괄호로 닫혀야 합니다. 열린 괄호는 올바른 순서로 닫혀야 합니다. 각 닫는 괄호는 동일한 유형의 열린 괄호와 대응 되어야 합니다. 문자열을 탐색하면서 열린 괄호가 나오면 스택에 넣습니다. 닫힌 괄호가 나오는 경우 스택의 탑에 있는 괄호와 대응되지 않거나 스택이 비어있을 땐 유효한 경우가 아닙니다. 스택의 탑에 있는 열린 괄호와 탐색 중인 닫힌 괄호가 대응된다면 스택의 탑에 있는 문자.. 2023. 4. 10.
[Leetcode] 703. Kth Largest Element in a Stream 문제 : https://leetcode.com/problems/kth-largest-element-in-a-stream/ k, nums 배열을 초기값으로 입력받고, 정수값 val을 nums 배열에 추가하는 함수 add를 제공할 때, k번째로 큰 원소를 찾기위한 클래스를 설계해라. 최대힙, 최소힙을 만들고 최소 힙의 크기는 k로 유지시킨다. 최소힙에는 k개의 큰 수들이 들어갈 것이고 이외의 수들은 모두 최대힙에 넣는다. nums = [1,2,7,4,3], k = 2 로 예를 들어보자. 1, 2 원소는 min heap에 용량이 아직 남았으므로 모두 min heap 에 넣어준다. 3번째 원소 7을 넣을때는 min heap이 모두 찼으므로 min heap의 top에 있는 수와 7을 비교한다. min heap의 .. 2022. 4. 8.
[Leetcode] 121. Best Time to Buy and Sell Stock 문제 : https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ i번째 날의 주식가격이 저장된 price 배열이 주어진다. 한 번의 매수, 매도를 할 수 있을 때 얻을 수 있는 최대 이익을 구하라. 만일 이익을 얻을 수 없으면 0을 반환하라. 배열을 앞에서부터 탐색하면서 최소 가격을 저장하고 탐색 중인 주식가격과 현재까지의 최소 가격의 차이들 중 최대값이 정답이 된다. 시간복잡도는 O(N) 소스코드 : https://github.com/fpdjsns/Algorithm-python/blob/main/leetcode/easy/121.%20Best%20Time%20to%20Buy%20and%20Sell%20Stock.py 2022. 2. 4.
[Leetcode] 1496. Path Crossing 문제 : https://leetcode.com/problems/path-crossing/ path를 탐색하며 현재 위치 좌표를 갱신한다. 갱신하면서 set에 현재 위치의 좌표에 온적있는지 확인한다. 만일 탐색한적 있다면 true를 반환한다. 탐색한적 없다면 set에 현재 위치를 추가하고 탐색을 계속한다. 모든 path를 탐색할때까지 중목된 좌표를 탐색한 적 없다면 false를 반환한다. 시간/공간복잡도는 O(N). 소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/easy/1496.%20Path%20Crossing.cpp 2021. 12. 28.