전체 글(32)
-
[Algorithm] 이진수 출력(재귀)
이전 문제와 같다. 재귀함수에 대해 확실히 이해시키고자 하신 듯 const input = require("fs").readFileSync("example.txt").toString(); const n = Number(input); let ans = ""; const two = (num) => { let k = Math.floor(num / 2); if (k > 0) { ans += num % 2; two(k); } else { ans += num % 2; return; } }; two(n); console.log(ans);
2023.10.09 -
[Algorithm] 재귀함수와 스택프레임
나는 자바스크립트로 코딩테스트를 푼다. 파이썬이나 C++에 비해서 풀기 불편하다고 하지만 프론트엔드에게는 자바스크립트만큼 중요한 언어는 없기 때문에 파이썬으로 초기에 풀었다가 자바스크립트로 변경하였다. 1년 전까지?만해도 프론트도 그냥 파이썬으로 푸는 사람들이 많았는데 우아한 코스인가? 거기서 코테를 js로 제한해서 뭔가 흐름이 크게 바뀐 듯하다. 여튼 돌아와서 간단한 코딩 문제들은 고차함수 혹은 배열 메서드로 해결이 가능하지만 입문을 막 떼고 조금만 난이도를 올리면 그 이상의 지식을 요구한다. 백준에서는 브론즈와 낮은 실버 문제를 풀며 실버 4까지 왔지만 처음으로 벽을 느낀게 백트래킹이었다. 그 다음 DFS, BFS로 넘어가면서 아 이거 그냥 머리로 풀면 안되겠다는 생각이 들었다. 물론 알고리즘 도움을..
2023.10.09 -
[JS Log] 배열
사실 배열은 기본 중 기본이지만 깊이 있는 이해를 위해 처음이자 마지막으로 드다본다. 27.1 배열이란? > 배열은 여러 개의 값을 순차적으로 나열한 자료구조다. > 배열이 가지고 있는 값을 요소라고 부른다. > 배열의 요소는 배열에서 자신의 위치를 나타내는 0 이상의 정수인 인덱스를 갖는다. > 배열은 요소의 개수, 즉 배열의 길이를 나타내는 length 프로퍼티를 갖는다. > 자바스크립트에 배열이라는 타입은 존재하지 않는다. 배열은 객체 타입이다. 27.2 자바스크립트 배열은 배열이 아니다. > 자료구조에서 말하는 배열은 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조를 말한다. 즉, 배열의 요소는 하나의 데이터 타입으로 통일되어 있으며 서로 연속적으로 인접해 있다. 이러한 배열을 밀..
2023.10.08 -
[JS Log] ES6 함수의 추가 기능
JS에서 ES6는 도입은 혁신적인 변화였다. 오늘은 그 변화를 들여다보기로한다. 26.1 함수의 구분 > 책에서는 동일한 함수를 여러가지 형태로 호출할 수 있으나 사용 목적이 구분되지 않는 것을 지적하고 있다. > ES6 이전의 모든 함수는 일반 함수로서 호출할 수 있는 것은 물론 생성자 함수로서 호출할 수 있다. var foo = function () { return 1; }; foo(); new foo(); var obj = { foo: foo }; obj.foo(); > ES6에서는 아래와 같이 함수를 구분해주기로한다. 26.2 메서드 > ES6 사양에서 메서드는 메서드 축약 표현으로 정의된 함수만을 의미한다. > ES6 사양에서 정의한 메서드는 인스턴스를 생성할 수 없는 non-constructo..
2023.10.08 -
[JS Log] 프로미스
비동기에 대한 내용을 쭉 다루고 있다. 비동기와 점점 가까워지는 느낌이다. 정말 개발을 처음 배울 때 Promise는 너무 어려운 존재였다. 자꾸 뭘 약속을 해준다는데 더 이해가 안되는 느낌이었다. 그냥 처리를 해줄게라고 약속하는 것이었다. async/await이 나와 쓸 일은 많이 없지만 처음이자 마지막으로 제대로 정리해보고 간다. 45.1 비동기 처리를 위한 콜백 패턴의 단점 45.1.1 콜백 헬 const get = url => { const xhr = new XMLHttpRequest() xhr.open('GET', url) xhr.send() xhr.onload = () => { if (xhr.status === 200) { console.log(JSON.parse(xhr.response)) r..
2023.10.07 -
[JS Log] Ajax
프로그래밍을 배우면서 Ajax는 정말 두려운 단어였다. 뭐든지 모르는 상태에서 용어를 보면 또 그 것이 자주 나온다면 더 두려워지는데 아는 순간 그 두려움은 사라진다. 43.1 Ajax란? > Ajax란 자바스크립트를 사용하여 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고, 서버가 응답한 데이터를 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식을 말한다. Ajax는 브라우저에게 제공하는 Web API인 XMLHttpRequest 객체를 기반으로 동작한다. XMLHttpRequest는 HTTP 비동기 통신을 위한 메서드와 프로퍼티를 제공한다. > 서버로부터 웹페이지의 변경에 필요한 데이터만 비동기 방식으로 전송받아 웹페이지를 변경할 필요가 없는 부분은 다시 렌더링하지 않고, 변경할 필요가 있는..
2023.10.07