목록IN DEPTH CAKE (40)
난이도: Easy키워드: Stack 문제 정수 배열 nums와 정수 target이 주어졌을 때, 두 숫자의 합이 target이 되도록하는 숫자의 인덱스를 반환합니다.각 입력에는 정확히 하나의 해결책이 있다고 가정할 수 있으며, 동일한 요소를 두 번 사용할 수 없습니다.어떤 순서로든 답을 반환할 수 있습니다. 문제 원문: https://leetcode.com/problems/two-sum/description/ Example 1:Input: nums = [2,7,11,15], target = 9Output: [0,1]Explanation: Because nums[0] + nums[1] == 9, we return [0, 1]. 문제 풀이O(n) 시간 안에 문제를 풀기 위해서, array의 iteratio..
난이도: Medium키워드: Stack문제 인코딩된 문자열이 주어지면 해당 문자열을 디코딩한 문자열을 반환합니다. 인코딩 규칙은 다음과 같습니다: k[인코딩된_문자열], 여기서 대괄호 내의 인코딩된 문자열이 k번 정확히 반복됩니다. k는 양의 정수임이 보장됩니다.입력 문자열이 항상 유효하다고 가정할 수 있습니다. 추가적인 공백이나 대괄호가 잘 형성되어 있지 않습니다. 또한 원본 데이터에는 숫자가 포함되어 있지 않으며 숫자는 반복 횟수 k만을 위한 것입니다. 예를 들어, 3a 또는 2[4]와 같은 입력은 없습니다. 테스트 케이스는 출력의 길이가 항상 10^5를 초과하지 않도록 생성됩니다. 입력 예시 Example 1:Input: s = "3[a]2[bc]"Output: "aaabcbc" 문제 원문: ht..
난이도: EASY키워드: Stack 문제 소문자 영어 알파벳으로 이루어진 문자열 s가 주어집니다. 중복 제거는 서로 인접하고 같은 글자 두 개를 선택하고 제거하는 것으로 구성됩니다.`s` 에서 더 이상 중복 제거를 할 수 없을 때까지 반복하여 수행합니다.모든 이러한 중복 제거가 완료된 후 최종 문자열을 반환합니다. 답이 유일함이 증명될 수 있습니다. 문제 원문: https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/description/ 문제 풀이class Solution {public: string removeDuplicates(string s) { vector stack; for(a..
난이도: Medium키워드: Stack 문제 상수 시간 내에 push, pop, top 및 최소 요소를 검색하는 스택을 설계하십시오.MinStack 클래스를 구현하십시오:- MinStack()는 스택 객체를 초기화합니다.- void push(int val)는 요소 val을 스택에 넣습니다.- void pop()은 스택의 맨 위의 요소를 제거합니다.- int top()은 스택의 맨 위 요소를 가져옵니다.- int getMin()은 스택에서 최소 요소를 검색합니다.각 함수에 대해 O(1) 시간 복잡도를 가진 솔루션을 구현해야 합니다. 문제 풀이 - O(1) 시간 내에 min 값을 반환하기 위해 추가 메모리를 써서 min 값을 반환할 수 있게 min_stack을 추가로 선언한다.- min_stack 값에 ..
난이도: Medium키워드: Array 문제 주어진 n x n 2차원 행렬은 이미지를 나타냅니다. 이 이미지를 90도(시계 방향)로 회전하십시오.이미지를 제자리에서 (in-place) 회전해야 하므로 입력 2차원 행렬을 직접 수정해야 합니다.다른 2차원 행렬을 할당하여 회전하지 마십시오. 문제 원문 : https://leetcode.com/problems/rotate-image/description/ 문제 풀이: 참고로, 이번 포스팅으로 정리한 코드는 속도가 빠른 solution은 아니다. 다만 문제 해결 과정과 같이 정리해보면 좋지 않을까 싶다.일단 문제를 이해하는 과정부터 시작해보면, 문제에서 제시한 조건을 간단한 예시를 통해 이해하는 것이 필요하다. 나는 3 x 3 예제를 사용해서 문제를 분석했다..
난이도: Medium키워드: Array 문제주어진 배열 nums에는 빨간색, 흰색 또는 파란색으로 색칠된 n개의 객체가 있습니다. 이들을 그 자리에서 정렬하여 동일한 색상의 객체가 서로 인접하도록 만듭니다. 이때 색상은 빨간색, 흰색 및 파란색 순서로 배열됩니다.빨간색, 흰색 및 파란색을 각각 나타내기 위해 정수 0, 1 및 2를 사용할 것입니다.라이브러리의 정렬 함수를 사용하지 않고 이 문제를 해결해야 합니다. 문제 원문: https://leetcode.com/problems/sort-colors/description/ 문제 풀이 색상 개수가 많지 않으니까 target 색상을 바꿔가면서 sorting을 하자in_place 로 sorting을 해야하니까, swap해야할 index를 기억해가면서 swa..