개발

    [알고리즘] 재귀함수 문제 모음

    1. 문자열 거꾸로 만들기 (예시) console.log(reverse("awesome")); // 'emosewa' console.log(reverse("rithmschool")); // 'loohcsmhtir' (코드) function reverse(str) { if (str.length === 0) return ""; return reverse(str.slice(1)) + str[0]; } 2. 문자가 대칭인지 확인하기 (예시) console.log(isPalindrome("awesome")); // false console.log(isPalindrome("foobar")); // false console.log(isPalindrome("tacocat")); // true console.log(is..

    [알고리즘] 재귀함수

    1. 재귀함수 (1) 재귀함수란? - 재귀함수란 자기자신을 호출하는 함수이다. (2) 재귀의 기본요소 - 종료조건 - 매번 다른 입력값 (3) 재귀의 위험요소 - 종료조건이 없는경우 : 계속 반복 - return을 하지 않은 경우 - 스택 오버플로우 : 재귀호출이 멈추지 않는 경우 2. 콜스택 예시 function takeShower() { return "Showering!"; } function eatBreakfast() { let meal = cookFood(); return `Eating ${meal}`; } function cookFood() { let items = ["Oatmeal", "Eggs", "Protein Shake"]; return items[Math.floor(Math.random..

    [BlockChain] TypeScript로 지갑 만들기

    [BlockChain] TypeScript로 P2P 구현 [TypeScript] TypeScript로 체인 만들기 [TypeScript] TypeScript로 블록 만들기 1. TypeScript로 블록만들기 (1) OOP(Object Oriented Programming) OOP는 객체지향적인 방법으로 코드를 작성하는 프로그램의 설계 방법론중 diary-blockchain.tistory.com 블록, 체인 만들기와 이어서 지갑까지 만든다. 0. 블록체인 (1) 머클트리 [블록체인] 비트코인 1. 비트코인이란? 비트코인/백서 - 나무위키 기존의 인터넷 기반 상거래는 전자결제를 처리하기 위해, 우리는 신뢰할 수 있는 제 3자인 외부의 금융기관에 의존해 왔다. 이러한 방식은 대부분의 diary-blockch..

    [BlockChain] TypeScript로 P2P 구현

    [TypeScript] TypeScript로 체인 만들기 [TypeScript] TypeScript로 블록 만들기 1. TypeScript로 블록만들기 (1) OOP(Object Oriented Programming) OOP는 객체지향적인 방법으로 코드를 작성하는 프로그램의 설계 방법론중 하나다. 수많은 객체 단위를 만들 diary-blockchain.tistory.com 블록, 체인 만들기에 이어서 코드를 작성한다. 1. P2P 구현 Block클래스와 Chain클래스, 웹소켓을 이용하여 P2P 네트워크를 구현한다. http와 ws(웹소켓)을 사용해서 api들을 구성하고 블록을 가져올 서버를 express로 만든다. 2. express, ws 설치 npm i express npm i --save-dev ..

    [BlockChain] TypeScript로 체인 만들기

    [TypeScript] TypeScript로 블록 만들기 1. TypeScript로 블록만들기 (1) OOP(Object Oriented Programming) OOP는 객체지향적인 방법으로 코드를 작성하는 프로그램의 설계 방법론중 하나다. 수많은 객체 단위를 만들어 서로 상호작용하며 동작하는 diary-blockchain.tistory.com 위 링크에서 만들었던 Block을 이용하여 Chain을 만들것이다. 1. Block을 이용해서 Chain만들기 chain클래스에는 생성한 블록을 배열로 담아서 블록체인을 만들것이다. 이미 만든 Block이 체이닝을 이루고 있는데 이전 블록 해시값을 속성으로 가지고 있기 때문에 특정 블록 기준으로 이전 블록 해시값이 달라지면 현재 블록의 이전 해시값과 불일치가 발생..

    [알고리즘] 문제 모음

    1. FrequencyCounter 문제 두개의 정수가 주어진다. 두 수가 같은 숫자를 포함하고 있는지 확인하는 함수 조건 : 시간복잡도 O(n) 예시 : console.log(sameFrequency(182, 281)); // true console.log(sameFrequency(34, 14)); // false console.log(sameFrequency(3589578, 5879385)); // true console.log(sameFrequency(22, 222)); // false 풀이 function sameFrequency(num1, num2) { const obj1 = {}; num1 = num1.toString(); for (let i = 0; i < num1.length; i++) {..