본문 바로가기

전체 글65

[LeetCode] 189. Rotate Array (Javascript) k번만큼 배열 앞에서 뒤로 아이템을 옮기는 문제다. var rotate = function(nums, k) { for(let i = 0; i < k; i++) { const pop = nums.pop(); nums.unshift(pop); } return nums; }; 문제 흐름대로 k번 반복을 돌며 pop과 unshift를 해도 되지만 var rotate = function(nums, k) { const spliced = nums.splice(nums.length - k, nums.length); nums.unshift(...spliced); return nums; }; k개만큼 떼서 한번에 unshift하는게 훨씬 낫다. 2020. 7. 20.
var vs let vs const var let const 스코프 함수 블록 블록 변수 재선언 O X X 재할당 O O X 할당하지 않고 선언만 하기 O O X 변수 선언 전 호출시 undefined ReferenceError ReferenceError 2020. 7. 19.
[HackerRank 30 Days of Code] Day 5 ~ Day 7 Day 5 : Loops 주어진 n의 구구단을 출력하면 된다. function main() { const n = parseInt(readLine(), 10); for(let i = 1; i 2020. 7. 13.
[Typescript] 제네릭(Generic)을 사용하는 이유 일단 나는 제네릭이라는 용어 자체를 몰랐다. 제너레이터랑 헷갈렸을 정도니까. 꺾쇠, 타입 키워드를 듣고도, 아. Array 말하는건가? 그거 그냥 string[]과 동일한 문법의 한 종류 아닌가? 생각했다. IDE에서 알려주는 정보 모달에서 라고 되어있는 것도 그냥 여기에 타입을 넣으세요~ 라는 의미인줄 알았는데... 제네릭을 진작 알았다면, 타입 정의의 새로운 세계가 열렸을텐데 참 아쉽다. 제네릭은 함수나 클래스에서 사용할 타입을 외부에서 유동적으로 지정해줄 수 있는 것을 말한다. 특정 타입을 사용할 것이지만, 그 타입을 유동적으로 지정할 수 있다. 예를들면 아래와 같이 사용할 수 있다. 리스폰스에 페이지네이션 정보와 함께 데이터 배열을 보내는 경우는 흔히 있다. 이때 totalItem, current.. 2020. 7. 10.
dd 보호되어 있는 글 입니다. 2020. 7. 9.
[javascript] 큐, 스택 구현 큐 구현 // 큐 const q = []; const push = (item) => q.push(item); const pop = () => q.pop(); q.push(1); console.log(q); // [ 1 ] q.push(2); console.log(q); // [ 1, 2 ] q.push(3); console.log(q); // [ 1, 2, 3 ] q.pop(); q.pop(); q.push(4); console.log(q); // [ 1, 4 ] 스택 구현 // 스택 const stack = []; const push = (item) => stack.push(item); const shift = () => stack.shift(); stack.push(1); stack.push(2); .. 2020. 7. 8.
베스트앨범 function solution(genres, plays) { var answer = []; const arr = []; const uniqG = Array.from(new Set(genres)); for(let i in genres){ arr.push({ i: i, // 고유번호 g: genres[i], // 장르 p: plays[i] // 재생된 횟수 }) } const cnt = {}; // 장르별 재생횟수 const countG = uniqG.map((ug) => { let gItems = arr.filter(a=>a.g === ug); cnt[ug] = 0 return { g: ug, pCnt: gItems.reduce((acc,cur)=> {return acc + cur.p},0) }; });.. 2020. 7. 8.
[HackerRank 30 Days of Code] Day 3, Day 4 Day 3 https://www.hackerrank.com/challenges/30-conditional-statements/problem 간단한 조건문 구현이다. 홀수면 'Weird' 짝수이고 2~5면 'Not Weird' 짝수이고 6~20이면 'Weird' 짝수이고 20보다 크면 'Not Weird'를 출력한다. function main() { const N = parseInt(readLine(), 10); const isOdd = N % 2 === 1; if (isOdd) { console.log('Weird'); } else { if((N > 1 && N < 6) || N > 20){ console.log('Not Weird'); } else { console.log('Weird'); } } } .. 2020. 7. 7.
[HackerRank 30 Days of Code] Day 0 ~ Day 2 Day 0 https://www.hackerrank.com/challenges/30-hello-world/problem 아주 간단한, 주어진 문자열을 로그로 찍는 문제다. function processData(inputString) { // This line of code prints the first line of output console.log("Hello, World."); // Write the second line of output that prints the contents of 'inputString' here. console.log(inputString); } Day 1 https://www.hackerrank.com/challenges/30-data-types/problem int, d.. 2020. 7. 7.