본문 바로가기

자바스크립트

(30)
[CodingTest] 쇠막대기, Stack 푸는데 어려웠던 문제 거나, 생소한 개념이 있는 문제들을 기록하려 한다. 이번 문제는 stack을 활용하여 푸는 것이었는데, 지문만 보고 해답을 찾기가 어려웠었다. 그래서 상세하게 풀이를 적어보고 복습하기 위해서 포스팅한다. 1. 문제 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에 서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. • 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. • 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. • 레이저는 어떤 쇠막대기의 양 끝점과도 겹..
[Algorithm] 스택(Stack) 자료구조 1. Stack 스택은 한쪽에서만 데이터를 넣고 뺄 수 있는, 후입선출(LIFO) 형태의 자료구조를 말한다. 후입선출(Last In First Out)은 가장 먼저 들어간 것이 가장 나중에 나오는 것을 의미한다. 따라서 자바스크립트에서 스택을 구현하려면, 배열의 Push와 Pop을 사용하면 된다. 2. 예시 입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요. function solution(s) { let answer = ''; let stack = []; for (const x of s) { if (x === '(') stack.push(x); else if (x === ')') stack.pop(); else { if (stack.leng..
[Algorithm] 슬라이딩 윈도우 알고리즘(Sliding Window Algorithm) 1. 슬라이딩 윈도우 알고리즘(Sliding Window Algorithm)이란? 슬라이딩 윈도우 알고리즘은 고정 사이즈의 윈도우를 이동시키면서, 윈도우 내에 있는 데이터를 이용해 문제를 풀이하는 알고리즘을 말한다. 이때 윈도우 안에 있는 데이터는, 양 끝에 있는 원소들만 변화한다. 2. 예시 현수의 아빠는 제과점을 운영합니다. 현수 아빠는 현수에게 N일 동안의 매출기록을 주고 연속된 K일 동안의 최대 매출액이 얼마인지 구하라고 했습니다. 만약 N=10이고 10일 간의 매출기록이 아래와 같습니다. 이때 K=3이면 12 15 11 20 25 10 20 19 13 15 연속된 3일간의 최대 매출액은 11+20+25=56만원입니다. 여러분이 현수를 도와주세요. //내코드 function solution(k, ..
[Algorithm] 투 포인터 알고리즘 (Tow Pointer Algorithm) 1. 투 포인터 알고리즘(Tow Pointer Algorithm)이란? 투 포인터 알고리즘은 말 그대로 두 개의 포인터 위치를 기록하며 처리하는 알고리즘을 말한다. 주로 정열된 배열에서 목표 값에 해당하는 요소를 찾을때 많이 사용한다. 투 포인터 알고리즘에는 서로를 향해 두 포인터를 움직이는 것과 같은 방향으로 두 포인터를 움직이는 것, 2가지 유형이 있다. 1) 서로를 향해 두 포인터를 움직이는 유형 두 개의 포인터를 시작과 끝에 설정하고, 포인터가 만날때까지 서로를 향해 이동한다. 2) 같은 방향으로 두 포인터를 움직이는 유형 두 개의 포인터를 같은 위치에 설정하고, 동일한 방향으로 포인터를 이동한다. 2. 예제 오름차순으로 정렬이 된 두 배열이 주어지면 두 배열을 오름차순으로 합쳐 출력하는 프로그램..
[IT] 일렉트론(Electron)이란? (feat. 자바스크립트로 데스크탑 앱 개발하기 ) 1. 일렌트론 (Electron) 일렉트론(Electron)은 자바스크립트(Javascript), HTML, CSS 만으로도 데스크톱 애플리케이션을 만들 수 있도록 해주는 프레임워크(framework)이다. 노드(Node.js)를 기반으로 하며, 자바스크립트뿐만 아니라 자바스크립트를 기반으로 하는 react, nextjs로도 애플리케이션을 만들 수 있다. 윈도우(window), 맥 OS(Mac OS), 리눅스(Linux) 모두 지원한다. 우리가 많이 사용하는 디스코드(Discord), 노션(Notion), 깃헙데스크톱(GitHubDesktop) 모두 일렉트론으로 만들어진 애플리케이션이다. 2. 일렉트론의 장점 1) 낮은 진입 장벽 일렉트론의 가장 중요한 장점은 진입 장벽이 낮다는 것이다. 자바스크립트 웹..
[Type] 타입스크립트(TypeScript) 란 ? 1. 타입스크립트 (TypeScript) 타입스크립트(TypeScript)는 타입(Type)과 자바스크립트(Javascript)가 합쳐진 언어라고 할 수 있다. 즉, 자바스크립트에 타입을 부여한 것이 타입스크립트이다. 브라우저는 타입스크립트를 이해하지 못하기 때문에, 타입스크립트에서 작성된 코드를 자바스크립트 코드로 컴파일(변환, compolile) 한 후 실행한다. 타입스크립트는 이 컴파일 과정 전에 코드를 미리 확인한 후 이상한 점이 있으면 에러를 표시해 준다. 2. Typescript 장점 1) 에러 사전 방지 타입스크립트의 가장 큰 장점은 타입 부여를 통해 에러를 미리 방지할 수 있다는 것이다. [1, 2, 3, 4] + false // 1,2,3,4false 자바스크립트는 매우 유연한 언어이기 ..