전체 글

전체 글

    [LeetCode] 리트코드 49. Group Anagrams(JS)

    문제 Group Anagrams - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com - 난이도 Medium - 관련 주제: Hast Table, String 문제 설명 strs 라는 string들로 이루어진 배열이 주어질 때 anagram이 되는 것들을 함께 grouping 하는 문제. 정답은 어떤 순서에 상관없이 return 해도 된다. Anagram은 일반적으로 기존의 단어들을 정확히 한번만 모두 사용하여 해당 단어들을 재배열해서 다른 단어 또는 문구를 만든 ..

    JS 정렬(sort) 방법

    정렬이란? 정렬은 특정한 규칙을 가지고 규칙에 맞게 한줄을 세우는 것으로 그 규칙이 오름차순(갈수록 높아지는), 내림차순(갈수록 낮아지는), 알파벳 순서(사전식) 등 다양하게 존재한다. 일반적인 정렬 방법은 for, while 과 같은 반복문을 통해서 정렬을 할 수 있지만 JS에는 ₩sort()₩ 라는 메서드가 존재한다. 다양한 정렬 알고리즘을 보고 싶으면 아래의 링크 참조! https://hankyul96.tistory.com/3 sort() 메서드 JS의 sort() 메서드는 기본적으로 배열을 기반으로 하며 배열의 요소를 적절한 위치에 정렬한 후 배열을 반환한다. sort() 메서드는 stable sort 가 아닐 수 있고 정렬 순서는 정수 숫자가 아닌 유니코드 코드 포인트를 따른다. let arr1..

    [유데미 - Modern React and Redux] Section 2: JSX 파트

    본 포스팅은 Udemy의 Modern React and Redux라는 강의를 보면서 React의 개념과 실습들을 정리한 것입니다. JSX 란? JSX 는 React에서 생김새를 정의할 때, 사용하는 문법으로 HTML처럼 보이지만 HTML은 아닌 사실 Javascript 이다. babel 을 통해서 JS로 변경되곤 하는데 babel 이 필요한 이유는 웹 브라우저는 새로운 ES 문법마다 생김새가 다른대 모든 ES 문법에 적용이 필요하기 때문에 하나의 통일된 javascript 결과물을 출력해 줄 무엇인가가 필요하기 때문. ( babel 에 대한 상세 내용은 추후 포스터에서 정리할 예정 ) - HTML으로 보이지만 HTML은 아니고 JS와 비슷한 문법 - 브라우저는 JSX 코드를 이해하지 못한다 -> JSX을..

    JS 화살표 함수(arrow function)

    Javascript 화살표 함수란? 화살표 함수는 ES6에 새로 등장한 함수를 생성하는 방법으로 말 그대로 화살표(=>) 를 이용하여 함수를 선언하는 방법이다. 화살표 함수는 익명 함수로만 사용할 수 있으며 매개변수의 여부 등에 따라 생략까지 할 수 있는 간략한 방법으로 함수를 선언할 수 있다. 또한 생성자로서 사용할 수 없다. 기존 함수 생성 방법(ES5) let sum = function(a,b) { return a+b; }; 기존 함수는 매개변수 a,b를 받는 함수 sum을 생성하고 return 값으로 매개변수들에 대한 식을 만든다 화살표 함수 생성 방법(ES6) let sum = (a,b) => a+b; 화살표 함수는 function이라는 키워드를 제거하고 기존 함수와 동일하게 괄호 안에 인자를 ..

    var, let, const 차이

    Javascript 변수, 상수 Javascript를 공부하던 중 변수를 선언하는 방식이 크게 var, let 그리고 const가 존재하는 것을 알게 되었다. 기존에 공부했던 C, C++, Java 와는 다른 방식의 변수 선언을 보고 차이점이 궁금하여 각 변수 키워드의 차이를 알아보고자 한다. var 이란? - ES5까지 사용된 변수 선언 키워드 - 중복 선언 가능 - 재할당 가능 - 함수 레벨 scope - 호이스팅 - 전역 개체 프로퍼티 var 은 Javascript에서 ES5까지 변수를 선언할 수 있는 유일한 키워드이다. 비교적 let에 비해 과거에 사용했던 키워드라고 해서 현재 사용 불가능하진 않다. 많은 JS 코드들이 var로 구성되어 있는 경우도 많고 현재도 var을 키워드로 사용 가능하다. ..

    [알고리즘 스터디] 정렬(Sorting) 종류들 - 1

    정렬(Sort)이란? 정렬은 말 그대로 특정하게 정한 임의의 순서대로(알파벳 순, 숫자 순)으로 어떠한 배열/리스트를 나열하는 것이다. 정렬은 여러 응용분야에 사용되는 매우 기본적인 문제이다. 오름차순 정렬 [0, 1, ,2, 3, ...] 정렬 종류 정렬의 종류에는 크게 간단한 정렬 알고리즘인 선택(Select)/버블(Bubble)/삽입(Insert) 정렬이 존재하고, 고급 정렬 알고리즘에는 분할과 정복 알고리즘인 병합(merge)/퀵(quick) 정렬과 힙(heap) 정렬 그리고 기수(Radix) 정렬이 존재한다. 정렬 알고리즘 분류 1. Stable 정렬 알고리즘 정렬할 자료들(입력 자료) 중 동일한 두 자료의 상대적인 위치가 정렬 후에도 유지되는 정렬 알고리즘 2. In-place 정렬 알고리즘 ..

    [알고리즘 스터디] Binary Search(이진탐색) 알고리즘

    Binary Search 알고리즘이란? 정렬된 배열의 탐색에 적합한 알고리즘으로, 정렬된 배열의 중앙에 있는 값을 조사하여 찾고자 하는 항목이 왼쪽 또는 오른쪽 부분 배열에 있는지 여부를 알아내어 탐색의 범위를 반으로 줄여가는 방법 예) 10억 명중에서 특정한 이름 검색 Binary Search(이진 탐색): 단지 30번 비교 필요 Sequence Search(순차 탐색): 평균 5억 번의 비교 필요 특징 모든 것을 방문하여 검색하는 Sequence Search 보다 효율적인 알고리즘 오름차순으로 정렬이 되어 있어야 하는 것이 조건 → 정렬된 리스트or배열 Binary Search 알고리즘 작동 방법 Binary Search 알고리즘 구현 방법 정렬된 배열의 양쪽 끝 값을 설정(left, right) 가..

    [서평] 구글이 목표를 달성하는 방식 OKR(Objective Key Results)

    2020년이 지나가고 새로운 연도가 시작되면 연례행사처럼 진행하는 것이 있다. 바로 한 해의 목표 세우기이다. 어떤 일에 있어서 항상 계획을 세우고 큰 계획에서 작은 세부적인 계획들로 마치 Top-down 방식처럼 쪼개는 것을 좋아하는 나는 이번 연도에도 어김없이 한 해의 목표와 목표 실천을 위해 해야 되는 To-Do list를 작성하고 있었다. 항상 목표 세우기를 하면 아쉬운 점은 얼마나 정량적으로 목표를 달성했는지 측정하는 것이었다. 매번 목표를 세울 때마다 정량적으로 접근하기보단 두루뭉술한 어법으로 목표를 세워 추후 목표 달성 여부를 체크해보면 달성했다고 할 수 있는지 개인적으로 양심의 가책을 느끼곤 했다. 이런 고민을 하던 중, 마침 주변에 지인이 OKR을 기법으로 한 목표 세우기를 하면 어떻겠냐..