[모던 자바스크립트 Deep Dive] 공부중
·
Programming Language
자바스크립트의 기본기를 제대로 잡아보고자 '모던 자바스크립트 Deep Dive'라는 책을 읽어보려고 한다.  예전에 Next.js로 만들어놓은 블로그에 작성하려고 했지만, 해당 블로그는 나중에 대대적인 리팩토링이 필요할 예정이라 어디에 글을 써야 할지 고민이 많았다. 일단 다음의 조건이 필요한데,1. 이후에 Next.js로 만든 블로그와 연동할 수 있어야 함 (GitHub의 README 파일로 정리해야 함)2. GitHub에서 보는 것은 다소 불편하니, 블로그처럼 사이트에서 쉽게 볼 수 있었으면 좋겠음 따라서 GitHub에 새로운 레포지토리를 생성하고 GitBook과 연동하기로 결정했다..  그리고 단순히 책의 내용이나 개념을 공유하는 것은 어디서나 쉽게 찾아볼 수 있는 정보이기 때문에 의미가 없다고 느..
[DFS] 1967. 트리의 지름 (Python)
·
Programming Language/자료구조와 알고리즘
문제 https://www.acmicpc.net/problem/1967 풀이 한 노드 기준에서 각 정점까지 거리를 구하기 가장 먼 길이에 해당하는 노드 찾기 2번의 노드를 기준으로 거리 구하는 과정을 한번 더 반복하면 됨 import sys input = sys.stdin.readline sys.setrecursionlimit(10**5) def dfs(idx,v): for n_idx, n_val in tree[idx]: if visited[n_idx] == -1: visited[n_idx] = v+n_val dfs(n_idx,v+n_val) n = int(input()) tree = {} for i in range(1,n+1): tree[i] = [] for _ in range(n-1): a,b,c =..
[Python] 가장 긴 증가하는 부분 수열(LIS) 구하는 방법
·
Programming Language/자료구조와 알고리즘
가장 긴 증가하는 부분 수열의 '길이'을 구하는 방법은 1. DP(Dynamic Programming) - 동적 계획법 2. Binary Search - 이분 탐색 으로,, 이전 게시글 참고하기 : https://bskwak.tistory.com/259 이번 게시물은 '길이'가 아닌 가장 긴 증가하는 부분 수열(LIS) 자체를 구하는 방법이다. 풀이 방법을 간단하게 설명하면, 1. dp를 통해 LIS 길이 구하기 2. 역추적하여 배열 구하고 뒤집으면 구할 수 있음 관련 문제 : https://www.acmicpc.net/problem/14002 import sys input = sys.stdin.readline n = int(input()) arr = list(map(int, input().split()..
[Python]가장 긴 증가하는 부분 수열(LIS) 길이 구하는 방법 2가지
·
Programming Language/자료구조와 알고리즘
가장 긴 증가하는 부분 수열(LIS) 풀이 방법 부분 수열 : 임의의 수열이 주어질 때, 몇 개의 수를 제거하여 만든 수열 부분 수열 중 가장 긴 증가하는 부분 수열을 구하는 방법은 2가지가 있다. 1. DP(Dynamic Programming) - 동적 계획법 2. Binary Search - 이분 탐색 1. 동적 계획법을 사용한 풀이 (백준 11053) 문제 : https://www.acmicpc.net/problem/11053 import sys input = sys.stdin.readline n = int(input()) arr = list(map(int, input().split())) dp = [1 for i in range(n)] for i in range(n): for j in range(..
[코테 대비] javascript 기본 문법
·
Programming Language/자료구조와 알고리즘
문자열 → 숫자 : parseInt(문자열변수, 10) var str_n = "12"; var int_n = parseInt(str_n, 10); 숫자 → 문자열 : 숫자변수.toString() var n = 10 var str_n = n.toString(); 문자열 길이 : 문자열변수.length console.log(str_n.length) 문자열 → 배열 : [...문자열변수] my_string = '12345; console.log([...my_string]); 배열 뒤집기 : 배열.reverse() num_list=[1,2,3]; num_list.reverse(); 배열 자르기 : 배열.slice(시작,끝) const arr = ['a', 'b', 'c', 'd']; const arr1 = ar..
BS Kwak
Slow but steady wins the race