목록전체 글 (126)
난이도: Easy키워드: Stack 문제 문자열 s가 주어졌을 때, 첫 번째로 반복되지 않는 문자를 찾고 그 인덱스를 반환합니다. 만약 그런 문자가 없다면, -1을 반환합니다. 입출력 예시 Example 1:Input: s = "leetcode"Output: 0 Example 2:Input: s = "loveleetcode"Output: 2 Example 3:Input: s = "aabb"Output: -1 문제 풀이class Solution {public: int firstUniqChar(string s) { unordered_map hash; for(const auto c : s){ const auto ptr = hash.find(c); ..
난이도: 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 예제를 사용해서 문제를 분석했다..