본문 바로가기

programming study

(889)
TypeScript(5) 본 내용은 Nomad Coders - TypeScript로 블록체인 만들기 강의를 토대로 작성하였습니다. 1. Classes TypeScript에서는 객체 지향 프로그래밍 키워드를 사용할 수 있음 JavaScript로 컴파일되며 해당 키워드들은 사라짐 해당 키워드들은 TypeScript에서만 사용딤 ex) private, protected TypeScript에서는 클래스를 Type으로 사용할 수 있음 접근 제어자 정리 구분선언한 클래스 내상속받은 클래스 내인스턴스 private 접근 가능 접근 불가 접근 불가 protected 접근 가능 접근 가능 접근 불가 public 접근 가능 접근 가능 접근 가능 추상 클래스 다른 클래스가 상속 받을 수 있는 클래스 추상 클래스는 인스턴스를 만들 수 없음 추상 메소..
[프로그래머스] 땅따먹기 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) function solution(land) { return Math.max(...land.reduce((acc, row) => { return [ row[0] + Math.max(acc[1], acc[2], acc[3]), row[1] + Math.max(acc[0], acc[2], acc[3]), row[2] + Math.max(acc[0], acc[1], acc[3]), row[3] + Math.max(acc[0], acc[1], acc[2]) ] }, [0, 0, 0, 0])); } Reference 프로그래머스
TypeScript(4) 본 내용은 Nomad Coders - TypeScript로 블록체인 만들기 강의를 토대로 작성하였습니다. 1. Polymorphism 다형성 다양한 구조를 가지는 것 Generic Type의 Placeholder 같은 것 사용할 함수의 모든 용도를 고려하여 Call signature를 정의하는 것은 비효율적 2. Geneirc Generic을 사용하여, 다형성을 구현 함수의 다양한 형태를 구현 작성한 코드의 타입 기준으로 바꿔줌 (꺽쇠) 안에 사용할 제네릭을 명시 함수를 단일 타입이 아닌, 다양한 타입에서 작동하게 할 수 있음 재사용성 증대 선언 시점이 아니라 생성 시점에 타입을 명시하여 다양한 타입을 사용할 수 있도록 하는 기법 type CallAllItem = { (arr: T[]):T } ​ con..
[Codility] BinaryGap - JavaScript 풀이 본 게시물은 Codility의 문제 풀이입니다. 자바스크립트 코드(나의 풀이) function solution(number) { // 1. 주어진 수 2진수 변환 const binaryNumber = number.toString(2); // 2. 1을 기준으로 잘라내기 const slicedNumber = binaryNumber.slice(binaryNumber.indexOf('1'), binaryNumber.lastIndexOf('1')); // 3. 1을 기준으로 배열로 나누기 const convertedNumber = slicedNumber.split('1'); console.log(convertedNumber); // 4. 길이가 가장 긴 요소가 최대 길이 const longestBinaryGap..
TypeScript(3) 본 내용은 Nomad Coders - TypeScript로 블록체인 만들기 강의를 토대로 작성하였습니다. 1. Call Signatures 함수의 타입 어떤 타입을 받고 어떤 타입을 반환하는지 명시할 수 있음 type Sum = (a: number, b: number) => number; ​ const sum: Sum => (a, b) => a + b; 2. Overloading 함수가 여러개의 Call Signatures를 가지고 있을 때 발생시킴 외부 라이브러리에서 자주 보이는 형태 다양한 방식으로 호출할 수 있는 함수를 지정할 수 있음 // merge type은 문자열들을 받았을 때는 문자열 합성을, 숫자들을 받았을 때는 숫자 합을 return type Merge = { (a: number, b: ..
TypeScript(2) 본 내용은 Nomad Coders - TypeScript로 블록체인 만들기 강의를 토대로 작성하였습니다. 1. Type Alias 타입 별칭 타입을 변수처럼 재활용할 수 있음 ​ const siru: Cat = { name: 'siru', age: 8, isVaccinated: true, } ​ const nunu: Cat = { name: 'nunu', age: 6, } 2. readonly 객체의 요소를 읽기 전용으로 지정할 수 있음 재할당을 방지 배열에 readonly 속성을 부여하면, 배열 원본을 변형시키는 메서드의 호출 방지 원본을 변형하지 않는 map과 같은 메서드는 호출 가능 원본 변형을 방지하기 위한 장치 type Cat = { readonly name: string; age: string..
TypeScript(1) 본 내용은 Nomad Coders - TypeScript로 블록체인 만들기 강의를 토대로 작성하였습니다. 1. 타입 안정성 JavaScript는 런타임 에러를 방지해주지 않음 유저가 마주칠 수 있음 전혀 다른 타입끼리의 연산, 존재하지 않는 메서드의 호출, 함수 매개변수의 잘못된 전달 등을 감지하지 않음 TypeScript는 타입 안정성을 부여하여 런타임 에러를 최소화 시킬 수 있음 2. TypeScript 강타입의 프로그래밍 언어 JavaScript의 Super Set TypeScript는 JavaScript로 변환 브라우저가 JavaScript 만을 이해하기 때문 Node는 TypeScript, JavaScript 둘 다 이해 TypeScript에 에러가 발생(또는 감지)하면, JavaScript로 ..
[프로그래머스] 스킬트리 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드(나의 풀이) function solution(skill, skill_trees) { let answer = 0; // skill_trees 순회 for (let i = 0; i