문제 링크 Group Anagrams - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 유형 배열, 문자열 문제 풀이 해당 문제는 여러 문자열이 담긴 배열이 입력으로 주어지고, anagram 단어끼리 묶어서 반환하는 문제이다. Anagram은 단어의 순서를 바꿔서 다른 단어를 찾는 놀이를 말한다. anagram 단어를 묶기 위해 JavaScript의 Map을 사용해 키를 기준으로 anagram 단어를 그룹핑한다. 이때, 기준이 되는 키는 각 문자열을 정렬시..
문제 링크 Add Strings - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 유형 문자열 (String) 문제 풀이 이 문제는 숫자 2개가 string 타입으로 주어지고, 숫자 2개를 더한 연산 결과를 string 타입으로 반환하는 문제이다. 초등학교 때 두 수의 덧셈할 때 일의 자리부터 더하면서 받아올림을 위의 자리로 올려주는 방법을 배웠다. 이 방법을 이용하면 된다. 받아올림(carry)은 각 자리의 합을 10으로 나눈 것이다. 해당 자리에 들어갈..
문제 링크 Search a 2D Matrix - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 유형 2차원 배열 문제 풀이 이 문제는 정렬된 2차원 m x n 배열내에 target이 있으면 true, 없으면 false를 반환하는 문제이다. 정렬된 1차원 배열을 먼저 생각해보자. 정렬된 1차원 배열에서 어떤 값을 탐색할 때 이진 탐색을 이용하면 O(log n)의 시간복잡도로 문제 해결이 가능하다. 문제에서 주어지는 2차원 매트릭스는 각 행, 열의 숫자들이 모..
문제 링크 Rotate Image - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 유형 2차원 배열 문제 풀이 이 문제는 이미지를 나타내는 2차원 행렬이 2차원 배열로 주어지고, 이를 시계방향으로 90도 돌렸을 때의 배열을 반환하는 문제이다. 처음 n x n 행렬의 인덱스를 oldX, oldY라 하고 90도 돌린 행렬의 인덱스를 newX, newY라고 할 때, 인덱스 간의 관계는 다음과 같다. newX = -oldY + (n - 1) newY = oldX..
문제 링크 Find the Duplicate Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 유형 배열 문제 풀이 이 문제는 배열 내 중복되는 숫자를 찾아 리턴하는 문제이다. 이 문제는 배열 내의 요소를 인덱스로 보는 방법을 통해 O(n)의 시간복잡도를 갖지만 공간복잡도가 다른 두 방법으로 접근할 수 있다. 새로운 배열에 숫자 존재 여부를 표시하기 nums 배열의 길이의 배열을 만들고, 배열을 순차적으로 접근한다. 현재 숫자에 해당하는 인덱스..
문제 링크 Shortest Unsorted Continuous Subarray - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 유형 투 포인터, 정렬 문제 풀이 이 문제는 배열 내 모든 원소가 오름차순 정렬이 되도록 정렬되지 않은 subarray를 정렬할 때의 최소 subarray의 길이를 구하는 문제이다. 해당 문제는 두가지 방법으로 접근 가능하다. 정렬 후 비교하기 1. 입력으로 주어진 배열을 정렬해 새로운 배열에 복사한다. 2. 브루트 포스 방법으로..
문제 링크 Merge Intervals - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 유형 배열, 정렬 문제 풀이 이 문제는 어떤 숫자 배열의 간격들이 요소인 배열이 주어진다. 간격이 겹치는 배열을 합쳐서 최종적으로 겹치지 않는 배열들을 출력한다. 이 문제는 다음과 같은 방식으로 접근한다. 배열을 정렬한다. 예제 입력은 요소들이 정렬되어 있어 모든 테스트 케이스들이 정렬된 줄 알았는데 테스트 케이스에는 정렬되지 않은 배열도 포함되어 있었다. 따라서, 왼..
문제 링크 Merge Sorted Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 유형 in-place sort 문제 풀이 이 문제는 num2 배열을 num1 배열로 합쳐서 비내림차순으로 in-place 정렬한 nums1을 반환해야 한다. 비내림차순(non-decreasing order)란 배열이 내림차순이 아닌 경우를 말한다. 즉, 배열 내에 같은 원소가 있기도 하고 그 원소들이 오름차순으로 정렬되어야 한다. 이 문제는 다음과 같은 방법으로 ..