전체 글(32)
-
[JS Log] 변수
프로그래밍의 기본인 변수, 나는 변수 생성 과정을 훤히 다 아는가라고 자문했을때 예니오가 나왔다. 너무 쉬운 내용은 패스하고 당당하지 못했던 부분을 정리해본다. 4.1 변수란 무엇인가? 왜 필요한가? > 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. > 직접 메모리 주소에 접근하는 것은 치명적인 오류를 발생시킬 가능성이 높기 떄문에 값의 위치를 가리키는 상징적인 이름인 변수를 붙여준다. > 변수에 저장된 값을 읽어 들이는 것을 참조라한다. 4.2 식별자 > 변수 이름을 식별자라고도 한다. 식별자는 어떤 값을 구별해서 식별할 수 있는 고유한 이름을 말한다. > 식별자는 값이 아니라 메모리 주소를 기억하고 있다. 식별자로 값을 구별해서 ..
2023.10.11 -
[Algorithm] 바둑이 승차(이진트리 DFS)
주어진 배열값 들의 부분합들중 limit을 넘지 않는 최대합을 구하는 것으로 오타 때문에 한참 걸렸다. 이진트리 완전 탐색에 조금씩 익숙해지는 중. const input = require("fs") .readFileSync("example.txt") .toString() .replaceAll("\r", "") .split("\n"); let [limit, n] = input[0].split(" "); limit = Number(limit) n = Number(n) let dogs = []; for (let i = 1; i { if (num == n + 1) { let weight = 0; for (let i = 1; i
2023.10.11 -
[Algorithm] 합이 같은 부분집합(이진트리 DFS)
이진 트리에 익숙해지기 위한 반복 문제이다. 서로소인 부분 합 2개의 합이 같은 지 확인하라고 한다. const input = require("fs").readFileSync("example.txt").toString().split("\n"); const n = Number(input[0]); const arr = input[1].split(" ").map(Number); arr.unshift(0); const sum = arr.reduce((a, b) => a + b, 0); let check = new Array(n + 1).fill(0); let answer = "NO"; const DFS = (num) => { if (num == n + 1) { let matched = []; for (let i..
2023.10.10 -
[Algorithm] 부분집합 구하기(이진트리 DFS)
주어지는 숫자의 부분집합을 구하라는 문제이다. 만약 3이 주어지면 3, 2, 1, (1,2) ... 뭐 이런식이다. const input = require("fs").readFileSync("example.txt").toString(); const n = Number(input); const visited = new Array(n + 1).fill(0); let ans = []; const DFS = (num) => { if (num === n + 1) { let k = []; for (let i = 1; i
2023.10.10 -
Vanilla JS + Redux 입문: counter
1. Redux를 왜 배우는가? > 이 내용은 노마드 코더 Redux 강의를 기반하고 있다. 무료니까 시간나면 다들 한 번 보시길. > 사실 나는 상태 관리를 위해서 리코일을 배웠다. 하지만, 아직 리덕스가 여전히 상태 관리 라이브러리로서 큰 파이를 차지하고 있기에 리덕스를 알아둘 필요가 있다고 생각했다. 게다가 만약 기업에서 상태 관리 라이브러리를 변경을 위해 나중에 정말 편한 주스타드로 넘어가더라도 리덕스를 알아둬야 알고 넘어갈 수 있기 때문이다. 강의는 아주 쉬운 코드로 시작한다. 2. Redux는 왜 필요한가? > 상태관리를 위해서 필요하다. 어플리케이션의 복잡도가 올라가면 올라갈수록 전역에 퍼져있는 상태를 찾아서 관리하기 어렵기에 한 곳에 모아서 관리한다는 것이 상태 관리 라이브러리의 존재 목적..
2023.10.10 -
[Algorithm] 이진트리순회(DFS: 깊이우선탐색)
function solution(v) { let answer; function DFS(v) { if (v > 7) { return; } else { console.log(v); DFS(v * 2); DFS(v * 2 + 1); } } DFS(v); return answer; } solution(1); // 콘솔을 어디 두냐에 따라서 순회 방향이 달라진다. // 전위순회 출력 1245367 // 중위순회 출력 4251637 // 후위순회 출력 4526731 스택에 어떻게 진행되는지 그려보면 그림이 그려진다.
2023.10.09