전체 글
-
leetCode (Remove Linked List Elements)-LinkedList프로그래밍/algorithm 2021. 7. 6. 11:59
문제 Given the head of a linked list and an integer val, remove all the nodes of the linked list that has Node.val == val, and return the new head. Example 1: Input: head = [1,2,6,3,4,5,6], val = 6 Output: [1,2,3,4,5] 배경지식 연결리스트 - 원소들을 저장할 때, 그 다음 원소가 있는 위치를 포함시키는 방식으로 저장하는 자료구조. 특징 k번째 원소를 확인/변경하기 위해 O(k(가 필요함 임의의 위치에 원소를 추가/임의 위치의 원소 제거는 O(1) 원소들이 메모리 상에 연속해 있지 않아 Cache hit rate가 낮지만 할당이 다소 쉬움 문..
-
leetCode - Intersection of Two Linked Lists (LinkedList)프로그래밍/algorithm 2021. 7. 6. 09:46
문제 Given the heads of two singly linked-lists headA and headB, return the node at which the two lists intersect. If the two linked lists have no intersection at all, return null. For example, the following two linked lists begin to intersect at node c1: It is guaranteed that there are no cycles anywhere in the entire linked structure. Note that the linked lists must retain their original structu..
-
new Function 문법프로그래밍/Js 2021. 7. 5. 18:00
함수 표현식과 함수 선언문 이외에 함수를 만들 수 있는 방법이 하나 더 있다. new Function 문법을 사용하면 함수를 만들 수 있다. let func = new Function ([arg1, arg2, ...argN], functionBody); 새로 만들어지는 함수는 인수 arg1...argN 과 함수 본문 functionBody로 구성된다. let sum = new Function('a', 'b', 'return a + b'); alert( sum(1, 2) ); // 3 기존에 사용하던 방법과 new Function을 사용해 함수를 만드는 방법의 가장 큰 차이는 런타임에 받은 문자열을 사용해 함수를 만들 수 있는 점이다. 보통 함수는 특별한 프로퍼티 [[Environment]]에 저장된 정보..
-
이벤트 루프?프로그래밍/Node 2021. 7. 4. 17:11
Node를 공부하면서, 중요한 개념인 이벤트 루프를 공부 해 보고자 한다. 내가 선택한 방법은 무식하지만 그냥 node doc문서를 다 해석하는 것. 1. 이벤트 루프는 무엇인가? 자바스크립트가 싱글 스레드임에도, Node가 non-blocking I/O 동작을 수행하도록 도와주는 프로그래밍 구조체 이다. 대부분의 최신 커널이 멀티 스레드이므로, 백그라운드에서 실행되는 여러 작업을 실행할 수 있다. 하나의 작업이 완료가 되면, 커널은 Node에게 알려준다. Node에게 알려 준 callback은 poll 큐에 추가 되고, 결국에는 실행 된다. 뒤에서 좀 더 자세하게 설명하겠다. 2. 이벤트 루프 설명 Node.js가 시작되면 이벤트 루프를 초기화하고 제공된 입력 스크립트를 처리 (또는이 문서에서 다루지 ..
-
객체로서의 함수와 기명 함수 표현식프로그래밍/Js 2021. 7. 2. 19:50
https://ko.javascript.info/function-object 를 보고 공부한 내용을 정리. 1. 객체로서의 함수 함수의 자료형은 객체이다. 그래서 함수를 호출할 수 있을 뿐 아니라 객체처럼 함수에 프로퍼티를 추가, 제거할 수 있다. 1. 'name' 프로퍼티 'name' 프로퍼티를 사용하면 함수이름을 가져올 수 있다. function sayHi() { alert("Hi"); } alert(sayHi.name); // sayHi 기본값을 사용해서 이름을 할당한 경우. function f(sayHi = function() {}) { alert(sayHi.name); // sayHi (이름이 있네요!) } f(); //(코드가 참 희한하게 생겼다) 객체 메서드 이름은 함수처럼 자동할당이 되지..
-
leetCode (Two Sum II - Input array is sorted) - Array, Binary Search프로그래밍/algorithm 2021. 7. 1. 10:57
문제 Given an array of integers numbers that is already sorted in non-decreasing order, find two numbers such that they add up to a specific target number. Return the indices of the two numbers (1-indexed) as an integer array answer of size 2, where 1 { let left = 0; let right = numbers.length - 1; while (left < right) { let sum = numbers[left] + numbers[right]; if (sum === target) { return [left ..
-
leetCode (Pascal's Triangle) - Array, DP프로그래밍/algorithm 2021. 6. 28. 08:10
문제 Given an integer numRows, return the first numRows of Pascal's triangle. In Pascal's triangle, each number is the sum of the two numbers directly above it as shown: Example 1: Input: numRows = 5 Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 배경지식 1. Array - 메모리 상에 원소를 연속하게 배치한 자료구조 2. DP - 여러개의 하위 문제를 먼저 풀고, 그것을 쌓아올려 주어진 문제를 해결하는 알고리즘 문제해결 1.테이블 설계 DP[i][j]는 바로 위의 인접한 두 개의 숫자의 합니다 2.점화식 세우..
-
1. 죽을 때까지 코딩하면 사는 법-홍전일책 2021. 6. 27. 18:38
읽은 기간 2021.06.14~ 2021.06.22 작성 시간 2021.06.27 서론 비전공자 출신으로 개발자의 삶을 선택하면서, 종종 평생 개발자의 삶을 살고 싶다는 생각을 하였다. 이 생각을 할 떄마다 항상 같이 생각이 났던 단어가 좋은 개발자라는 단어이다. 좋은 교사, 좋은 의사, 좋은 00 처럼 어떤 일을 할때 앞에 '좋은'이라는 수식어가 붙는 다면, 그 일을 하는 사람에게는 꽤 괜찮은 칭찬인 것 같다. 사실, 최고의 개발자가 되는 것은 바라지도 않았지만, 좋은 개발자가 꼭 되고 싶은 열망은 항상 가슴 속에 있었다. 본론 그러면 좋은 개발자는 무엇일까?? 불과 이 책을 읽기 2주 전 누군가 나에게 이러한 질문을 했다면, 언어를 잘 다룰 줄 아는 사람 블로그에 개발 글을 길게 쓰는 사람(웃기지만 ..