코테준비

문제https://leetcode.com/problems/jump-game/?envType=study-plan-v2&envId=top-interview-150 풀이해당 문제는 두 가지 방식으로 풀이해봤다.하나는 각 칸마다 도달할 수 있는 경우를 기록하는 방법, 또 다른 방법은 마지막 인덱스 부터 도달할 수 있는지 검증하는 방법이다. 코드/** * @param {number[]} nums * @return {boolean} */// 첫 번째 코드// var canJump = function(nums) {// if(nums.length === 1) return true;// const lastIdx = nums.length - 1;// const test = Array.from({len..
문제https://leetcode.com/problems/longest-substring-without-repeating-characters/description/?envType=study-plan-v2&envId=top-interview-150 풀이해당 문제는 아래의 사진을 참고하며 설명해보자. Set 객체에 값을 넣어주며 중복 처리를 진행한다. 만약 중복된 문자열이 나온다면 왼쪽 포인터를 옮기며 탐색을 진행한다. 코드/** * @param {string} s * @return {number} */// 첫 번째 풀이// var lengthOfLongestSubstring = function(s) {// if(s.length === 0) return 0;// let answer = 0;/..
문제https://leetcode.com/problems/is-subsequence/?envType=study-plan-v2&envId=top-interview-150 코드// /**// * @param {string} s// * @param {string} t// * @return {boolean}// */// var isSubsequence = function(s, t) {// let [sp, tp] = [0, 0];// while(tp
문제https://leetcode.com/problems/generate-parentheses/?envType=problem-list-v2&envId=dynamic-programming풀이해당 문제는 백트레킹 알고리즘을 적용해 풀 수 있다.sol 함수에서 여는 괄호의 갯수가 n보다 작다면 여는 괄호를 추가한 문자열을 재귀 동작으로 함수를 호출하고, 다른 if문에서는 여는 괄호의 갯수가 닫는 괄호의 갯수보다 많을 경우 닫는 경우의 조합을 구하기 위해 닫는 괄호를 추가한 문자열을 함수 호출해준다.코드/** * @param {number} n * @return {string[]} */const generateParenthesis = (n) => { const result = []; const sol..
문제https://leetcode.com/problems/sort-colors/?envType=daily-question&envId=2025-05-17 풀이숫자 배열의 정렬 문제로써, 0은 항상 앞에, 2는 항상 뒤에 있어야 한다. 그렇다면 포인터를 이용해 값에 대한 검증을 진행하고 Swap 동작으로 각 값의 위치를 변경해주며 값을 정렬해줄 수 있다.(i는 현재 값의 포인터, j는 0이 들어갈 위치 포인터, k는 2가 들어갈 위치 포인터) 코드/** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. */const sortColors = (nums) => { let [i, j, k..
문제https://www.acmicpc.net/problem/2668 풀이이 문제는 DFS알고리즘을 이용해 각 숫자의 사이클 여부를 확인해 답을 도출하는 문제이다. DFS 알고리즘에 사이클 시작 숫자와 현재의 숫자를 전달을 하고 해당 숫자의 값이 방문되었으며 시작 값과 같다면 정답 집합에 속하는 숫자이므로 답을 도출할 수 있다. 코드const input = require("fs") .readFileSync( process.platform === "linux" ? "/dev/stdin" : __dirname + "/example.txt" ) .toString() .trim() .split("\n") .map((e) => e.trim());const [n, ...number] = input...
58청춘
'코테준비' 태그의 글 목록