이펙티브 자바스크립트 Item 15를 읽다가 이해가 안되는 부분이 있었다. "런타임 때까지 객체의 속성을 알 수 없을 경우에만(예를 들어 CSV 파일에서 로드하는 경우) 인덱스 시그니처를 사용하도록 하자" ❗️CSV 파일이 뭐지 ? 그래서 찾아보았다. CSV CSV(Comma Seperated value) 란 데이터는 쉼표를 기준으로 항목을 구분하여 저장하는 데이터를 말한다. (해석하면 콤마로 구분된 값이다) 콤마로 규칙적으로 구분되어 있기 때문에 엑셀과 같은 프로그램으로도 읽을 수 있고, 생성할 수도 있다. 주로 테이블 형태로 구성된 자료나 텍스트 자료를 저장할 때 사용한다. 쉼표를 대신하여 다른 문자 ($, %, etc.)를 이용하여 구분하도록 지정할 수도 있다. 예를 들어 데이터 자체에 쉼표가 포함..
2. polymorphism poly란? - many, serveral, much, multi 등과 같은 뜻이다. morphos란? - form, strucure등과 같은 뜻이다. 따라서 polymorphism은 다형성을 뜻한다 기본적으로 함수는 여러가지 다른 모양을 가지고 있다. 타입스크립트에서 함수는 다른 2~3개의 parameter를 가질 수 있다. 또는 타입스크립트에서 함수는 string이나 object를 첫번째 파라미터로 가질 수 있다고 했다. 그러니까 우리는 이미 약간의 여러가지 모양의 다형성을 해본것이다. 이번시간에는 여기에 더 도움을 줄 제네릭에 대해서 알아볼 것이다. 제네릭은 선언 시점이 아니라 생성 시점에 타입을 명시하여 하나의 타입만이 아닌 다양한 타입을 사용할 수 있도록 하는 기법이..
https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 여기서 생각해야할 것은 1,2,3번 수포자들이 일정게 반복하는 규칙을 가지고 문제를 찍기에 나머지 계산법을 활용하는 것과 가장 많은 문제를 맞힌 사람이 한명이 아니라 중복으로 여러명 될 수 있다는 점을 잘 기억해야한다. 나의코드 2022-06-30 02:31 풀이 function solution(answers) { let one = [1,2,3,4,5] let ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 function solution(elements) { const inbox = new Set() // 길이 i인 연속 부분 수열 for( i=1; i
https://school.programmers.co.kr/learn/courses/30/lessons/135808# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 function solution(k, m, score) { score.sort((a,b) => b-a) const result = score.filter((x,i) => (i+1) % m === 0) return result.reduce((a,b) => a+b) * m } 이 코드는 케이스 한개가 통과가 되지않는다. 왜그럴까 ?... 원리는 내림차순으로 해서 제일 큰 값들을 배열 앞..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 function solution(fees, records) { const parkingData = new ParkingData(fees, records); return parkingData.getResult(); } class ParkingData { #fees; #parkingData; #result; constructor(fees, records) { this.#fees = fees; this.records = records; this.#parkingData = {}; this.#run(); }..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 function solution(k, tangerine) { const countEachSize = tangerine.reduce((acc,cur) => { acc[cur] = (acc[cur] || 0) + 1 return acc },{}) const numberOfEachSize = Object.values(countEachSize).sort((a,b) => b - a) let NumberToPack = k while(NumberToPack) { if(numberOfEachSize[0]) num..
effective Javascript를 읽다가 declare를 제대로 알지 못하여 이에 대해 검색해보았다. 그러다가 알게된 것들이 많아 이렇게 정리하게 되었다. (그 궁금증으로 인해 엄청난 시간이 소요되었다. ㄷㄷㄷ) 우리가 일반적인 자바스크립트 환경에서는 두 개의 JS파일을 같이 사용하고자 한다면 아래처럼 해도 된다. // data.js const a = 10; // index.js console.log(a + 5); // index.html "hi" 이런식으로 해도 정상적으로 작동한다. 하지만 js와 ts를 같이사용한다면 ? // data.js const a = 10; // index.ts console.log(a + 5); // index.html "hi" // ts를 컴파일한 js파일 ( tsc ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 function solution(msg) { const result = matchAlphabet(msg); return result; } function matchAlphabet(string, result = [], alphabetIndex = GenerateAlphabetIndex()) { if (alphabetIndex.has(string)) { result.push(alphabetIndex.get(string)); return result; } let index = 0; let hasIndex..