chaneesong's blog
취소

Array Partition

561. Array Partition 문제 설명 짝수개의 정수를 가진 배열이 주어질 때, 이 정수들을 n개의 페어 (a1, b1), (a2, b2), ..., (aN, bN)로 만들어 min(a, b)의 최대 합을 리턴하라. 해결 방법 정렬된 상태에서 인접한 요소와 페어를 만들게 되면 페어의 최솟값들의 합이 최대합이 된다. 또, 정렬을 한 상태...

3Sum

15. 3Sum 문제 설명 정수 배열이 주어질 때, 3개의 엘리먼트가 i != j, i != k, j != k이고, nums[i] + nums[j] + nums[k] === 0인 경우를 모두 찾으시오. 결과에 중복이 존재해서는 안된다. 해결 방법 투 포인터 탐색을 진행하기 위해 주어진 배열을 오름차순으로 정렬한다. 배열을 순회할 때, 인덱스...

Trapping Rain Water

42. Trapping Rain Water 문제 설명 각각의 막대의 너비가 1인 높이를 나타내는 자연수 n이 주어질 때, 비가 온 후 물을 얼마나 담을 수 있는지 계산하라. 해결 방법 투 포인터를 활용하여 왼쪽과 오른쪽에서 현재 높이와 최대 높이의 차이 만큼을 더해나간다. 양 쪽 모두 최대 높이와 현재 높이를 비교해 최대 높이를 갱신한다...

vscode에서 lazygit 사용하기

Intro 요즘 vscode를 설정하는데 푹 빠져있다. 원래 더 자유도가 높고, 마우스도 잘 안쓰는 neovim을 쓰려고 했는데, 컴퓨터가 안좋은 탓인지 몰라도 커맨드를 여러 개 중첩시키면 제대로 동작하지 않는 현상이 벌어진다. 예로 들면, 전체 선택을 하기 위해 커서를 파일 끝으로 옮기고, 선택 모드로 진입 후 첫 라인으로 이동, 그리고 커서를 앞...

Two Sum

1. Two Sum 문제 설명 숫자 nums 배열과 타겟 숫자가 주어질 때, 배열의 두 숫자를 합하여 타겟이 되는 인덱스를 반환하라. 각각의 입력에는 하나의 솔루션만 있고, 같은 요소를 두 번 사용할 수 없다. 정답을 반환 할 때, 정렬은 필요없다. 해결 방법 반복문을 돌며 타겟에서 현재 값을 빼면 나머지 값이 나오기 때문에 이를 배열에서 ...

Longest Palindromic Substring

5. Longest Palindromic Substring 문제 설명 문자열 s가 주어질 때, 부분 문자열 중 가장 긴 팰린드롬을 리턴하라. 해결 방법 부분 문자열의 팰린드롬을 확인하는 expand 함수를 정의한다. expand는 left와 right를 투포인터로 받아 양쪽으로 확장하면서 팰린드롬을 체크한다. ...

chatGpt를 통한 테스트코드 작성

Intro 리트코드의 Group Anagrams라는 문제를 풀다가 테스트코드를 작성하는데 지문에 이런 문구가 있다. You can return the answer in any order. 어떠한 순서로도 반환할 수 있다. 이럴 때 jest로 테스트코드를 작성한다고 하면 어떻게 작성해야되는지 의문이 들었다. 그런데 애초에 키워드 자체를 모르...

vscode에서 typescript 디버깅

INTRO vscode에서 타입스크립트를 디버깅하는 방법은 인터넷에도 많이 나와있고, vscode 공식문서에도 나와있다. 그래서 생략하고, 나머지 내가 난관에 봉착했던 것들을 기록하려한다. vscode 공식문서 문제 상황 알고리즘 문제를 풀던 도중 긴가민가하는 문제가 생겨서 디버깅을 해야하는 상황이 생겼다. 그래서 위의 문서에 나와있는대로 디버...

Group Anagrams

49. Group Anagrams 문제 설명 문자열로 이루어진 배열이 주어질 때, 애너그램 단위로 그룹화 묶어라. 정달을 반환할 때에는 정렬은 고려하지 않아도 된다. 애너그램은 일반적으로 모든 오리지널 문자를 한 번씩만 사용하여 다른 단어나 구를 재배치하여 형성된 단어나 구이다. 예를 들면, eat과 tea는 같은 애너그램 그룹이다. 해결 방...

Most Common Word

819. Most Common Word 문제 설명 문자열로 된 문장과 금지어 목록이 배열로 주어질 때, 금지어가 아니면서 가장 많이 등장하는 단어를 리턴하라. 적어도 한 단어는 금지어로 지정되어 있지 않고, 정답은 하나 뿐이다. 문장의 단어들은 대소문자가 구분되어 있지 않고, 정답은 소문자로 반환되어야 한다. 해결 방법 주어진 문장을 배...