[모던 자바스크립트 Deep Dive] 공부중
·
Web/Javascript\Typescript
자바스크립트의 기본기를 제대로 잡아보고자 '모던 자바스크립트 Deep Dive'라는 책을 읽어보려고 한다.  예전에 Next.js로 만들어놓은 블로그에 작성하려고 했지만, 해당 블로그는 나중에 대대적인 리팩토링이 필요할 예정이라 어디에 글을 써야 할지 고민이 많았다. 일단 다음의 조건이 필요한데,1. 이후에 Next.js로 만든 블로그와 연동할 수 있어야 함 (GitHub의 README 파일로 정리해야 함)2. GitHub에서 보는 것은 다소 불편하니, 블로그처럼 사이트에서 쉽게 볼 수 있었으면 좋겠음 따라서 GitHub에 새로운 레포지토리를 생성하고 GitBook과 연동하기로 결정했다..  그리고 단순히 책의 내용이나 개념을 공유하는 것은 어디서나 쉽게 찾아볼 수 있는 정보이기 때문에 의미가 없다고 느..
[DFS] 1967. 트리의 지름 (Python)
·
Computer Science/자료구조와 알고리즘
문제 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) 구하는 방법
·
Computer Science/자료구조와 알고리즘
가장 긴 증가하는 부분 수열의 '길이'을 구하는 방법은 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가지
·
Computer Science/자료구조와 알고리즘
가장 긴 증가하는 부분 수열(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 기본 문법
·
Computer Science/자료구조와 알고리즘
문자열 → 숫자 : 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..
[누적합] 10986. 나머지의 합 (Python)
·
Computer Science/자료구조와 알고리즘
시도 1 deque로 풀 수 있을 것이라 생각했다.. [value, idx ] (value: 현재까지 값, idx : 현재 위치) 를 deque에 추가 하나씩 꺼내어 idx+1 번째의 값을 value에 더하고 m으로 나눈 나머지가 0인지 아닌지 체크 당연하게 시간초과.. 시도 2 (정답) list = [1,4], m으로 나눈 나머지 r 이라고 할 때, 다음과 같이 식을 작성할 수 있다 tmp1 = list[0] * m + r tmp2 = list[1] * m + r r의 값이 동일하다면, tmp2 - tmp 1 = m * (list[1] - list[0]) 이말은 즉,, 나머지가 같으면? m으로 나누어 떨어진다는 의미와 같다. 만약, list가 누적합 리스트라면, list[1] - list[0] 은 구간..
내가 Typescript를 쓰는 이유
·
Project
여러 프로젝트를 진행하면서, 내가 왜 Typescript를 쓸까? Typescript를 쓰면서 얻게 되는 이점은 이런거였구나.. 등 많은 생각을 했다 내가 제일 크게 느꼈던 Typescript의 장점은.. 일반적으로 말하는 타입스크립트의 장점을 떠나서, 백엔드의 DTO(Data Transfer Objects)를 type으로 정의해두면 정말 편리했다. 1. 백엔드로 부터 받는 데이터 구조를 type으로 정의하면 프론트에서 데이터를 처리할 때 발생할 수 있는 타입 관련 오류를 방지할 수 있었다. 예를 들면, price이 string인지 number인지에 따른 오류를 사전 방지할 수 있음..! 2. 백엔드에서 데이터 구조에 변경 사항이 있을때, 쉽게 반영할 수 있어 편리했다. 그리고 자동 완성 이것도 정말....
[Next.js] Image is missing required "src" property:
·
Project/error 모음
const [profileImg, setProfileImg] = useState(""); useEffect(() => { setMounted(true); if (isLogin && userInformation) { setProfileImg(userInformation.gender === "MAN" ? "/manIcon.png" : "/womanIcon.png"); } }, [isLogin]); Image is missing required "src" property: => 에러가 뜨는 이유? 위 코드에서 profileImg가 없을수도 있어서! src={변수} 이면, 변수에 값이 없는 경우도 고려해주어야한다. 해결 {profileImg &&
BS Kwak
'분류 전체보기' 카테고리의 글 목록