151. Reverse Words in a String
·
카테고리 없음
난이도: 중간 (Medium)링크: LeetCode 151풀이 날짜: 2025/10/22 1. 문제 이해입력 문자열 s는 공백이 포함될 수 있으며, 단어 단위로 뒤집어 출력해야 한다. 연속된 공백은 하나로 간주하며, 결과 문자열은 단어 사이에 한 칸 공백만 존재해야 한다. 2. 접근 방식 — 배열 + 내장 메서드 활용문자열의 앞뒤 공백 제거: trim()공백 기준으로 단어 배열 생성: split(/\s+/) (연속 공백 처리)단어 배열 뒤집기: reverse()배열을 다시 문자열로 변환: join(' ') 3. 풀이 코드1. 배열 + 내장 메서드 활용(배열 + join)var reverseWords = function(s) { return s.trim().split(/\s+/).reverse()...
71. Simplify Path
·
카테고리 없음
난이도: 중간 (Medium)링크: LeetCode 71풀이 날짜: 2025/10/22 1. 문제 이해입력:path = "/a/./b/../../c/"출력:"/c"설명:UNIX 스타일 경로를 단순화하는 문제. → 현재 디렉토리, .. → 상위 디렉토리, 연속 /는 하나로 합침최종적으로 최소한의 경로를 반환 2. 접근 방식 — Stack 활용경로(path)를 / 기준으로 나눈 후(path = "/a/./b/../../c/" -> ['a', '.', 'b','..','..','c']) Stack을 이용해 유효한 디렉토리 또는 파일을 스택에 넣어서 관리하는 방식으로 풀이한다. 규칙:'' 또는 . → 무시.. → Stack에서 상위 디렉토리를 제거(pop)그 외 → Stack에 push. 유효한 디렉토리 또는 ..
150. Evaluate Reverse Polish Notation
·
카테고리 없음
난이도: 중간 (Medium)링크: LeetCode 150풀이 날짜: 2025/10/22 1. 문제 이해이 문제는 후위 표기식(Reverse Polish Notation, RPN) 을 계산하는 문제다. RPN에서는 연산자가 피연산자(숫자) 뒤에 위치한다. 예를 들어["2", "1", "+", "3", "*"] → (2 + 1) * 3["4", "13", "5", "/", "+"] → 4 + (13 / 5)["10","6","9","3","+","-11","*","/","*","17","+","5","+"] → 결과는 22 2. 접근 방식 — Stack 기반 후위 표기식 계산후위 표기식은 괄호 없이도 계산 순서가 명확하다. 이를 스택으로 쉽게 처리할 수 있다. 핵심 아이디어:숫자는 스택에 push한다.연산..
20. Valid Parentheses
·
Coding Test/LeetCode
난이도: 쉬움 (Easy)링크: LeetCode 20 — Valid Parentheses풀이 날짜: 2025/10/22 1. 문제 이해입력:s = "()[]{}"출력:true괄호로 구성된 문자열이 주어질 때, 올바르게 짝이 맞는지 판단하는 문제다. 모든 열린 괄호는 같은 종류의 닫힌 괄호로 닫혀야 하며, 올바른 순서로 닫혀야 한다.입력결과이유"()"true괄호 짝이 맞음"()[]{}"true여러 종류의 괄호가 올바르게 닫힘"(]"false서로 다른 괄호가 짝지어짐"([)]"false괄호 순서가 잘못됨"{[]}"true중첩 구조로도 올바르게 닫힘 2. 접근 방식 — Stack (스택)이 문제는 스택 자료구조의 대표적인 응용 문제다. 핵심 아이디어:열린 괄호는 스택에 push한다.닫힌 괄호가 등장하면, 스택..
128. Longest Consecutive Sequence
·
Coding Test/LeetCode
난이도: 중간 (Medium)링크: LeetCode 128풀이 날짜: 2025/10/22 1. 문제 이해정수 배열 nums가 주어질 때, 연속된 정수로 이루어진 가장 긴 시퀀스 길이를 구하는 문제이다. 그리고 연속된 수들은 배열 내에서 순서대로 나열되어 있을 필요는 없다. 핵심은 연속된 수들을 효율적으로 찾는 방법이다. 2. 접근 방식 — HashSet 활용단순히 배열을 정렬한 후 연속 시퀀스를 찾으면 O(n log n) 시간(sort 정렬)이 걸리는데, 하지만 HashSet을 사용하면 O(n) 시간에 해결 가능하다. 핵심 아이디어모든 수를 HashSet에 저장한다.각 수가 연속 시퀀스의 시작점인지 확인한다. 즉, 시작점 조건은 num - 1이 Set에 없는 경우.시작점이면, while 문을 이용하여,..
49. Group Anagrams
·
Coding Test/LeetCode
난이도: 중간 (Medium)링크: LeetCode 49풀이 날짜: 2025/10/21 1. 문제 이해입력:strs = ["eat","tea","tan","ate","nat","bat"]출력:[["eat","tea","ate"],["tan","nat"],["bat"]] 문자 순서를 재배열해서 동일한 단어가 될 수 있는 문자열들을 하나의 그룹으로 묶는다. 즉, Anagram(아나그램) 들을 함께 모으는 문제다. 2. 접근 방식 — 정렬된 문자열(Key) 기반 해싱두 문자열이 아나그램인지 확인하는 가장 간단한 방법은 다음과 같다: 문자열의 문자를 정렬했을 때 동일한 결과를 갖는지 비교한다. 예를 들어 "eat", "tea", "ate" → 모두 정렬 시 "aet""tan", "nat" → 모두 정렬 시 "a..