본문 바로가기

전체 글115

dd 보호되어 있는 글 입니다. 2020. 7. 9.
[javascript] 큐, 스택 구현 큐 구현 // 큐 const q = []; const push = (item) => q.push(item); const pop = () => q.pop(); q.push(1); console.log(q); // [ 1 ] q.push(2); console.log(q); // [ 1, 2 ] q.push(3); console.log(q); // [ 1, 2, 3 ] q.pop(); q.pop(); q.push(4); console.log(q); // [ 1, 4 ] 스택 구현 // 스택 const stack = []; const push = (item) => stack.push(item); const shift = () => stack.shift(); stack.push(1); stack.push(2); .. 2020. 7. 8.
베스트앨범 function solution(genres, plays) { var answer = []; const arr = []; const uniqG = Array.from(new Set(genres)); for(let i in genres){ arr.push({ i: i, // 고유번호 g: genres[i], // 장르 p: plays[i] // 재생된 횟수 }) } const cnt = {}; // 장르별 재생횟수 const countG = uniqG.map((ug) => { let gItems = arr.filter(a=>a.g === ug); cnt[ug] = 0 return { g: ug, pCnt: gItems.reduce((acc,cur)=> {return acc + cur.p},0) }; });.. 2020. 7. 8.
[HackerRank 30 Days of Code] Day 3, Day 4 Day 3 https://www.hackerrank.com/challenges/30-conditional-statements/problem 간단한 조건문 구현이다. 홀수면 'Weird' 짝수이고 2~5면 'Not Weird' 짝수이고 6~20이면 'Weird' 짝수이고 20보다 크면 'Not Weird'를 출력한다. function main() { const N = parseInt(readLine(), 10); const isOdd = N % 2 === 1; if (isOdd) { console.log('Weird'); } else { if((N > 1 && N < 6) || N > 20){ console.log('Not Weird'); } else { console.log('Weird'); } } } .. 2020. 7. 7.
[HackerRank 30 Days of Code] Day 0 ~ Day 2 Day 0 https://www.hackerrank.com/challenges/30-hello-world/problem 아주 간단한, 주어진 문자열을 로그로 찍는 문제다. function processData(inputString) { // This line of code prints the first line of output console.log("Hello, World."); // Write the second line of output that prints the contents of 'inputString' here. console.log(inputString); } Day 1 https://www.hackerrank.com/challenges/30-data-types/problem int, d.. 2020. 7. 7.
[javascript] 숫자 형변환(문자열 -> Float) 문자열 -> 정수로 바꾸는건 간단하다. parseInt('3') "3.1"을 Float 3.1로 변환하려면? const a = '3.0'; parseInt(a); // 3 parseFloat(a); // 3 parseInt(a).toFixed(1) // "3.0" const b = '3.1' parseInt(a) // 3 parseFloat(b) // 3.1 parseInt(b).toFixed(1) // "3.0" parseFloat(b).toFixed(1) // "3.1" "3.0"을 parseFloat하면 당연히 3.0이 나올 줄 알았는데 아니어서 당황했다. 이럴땐 소숫점 자릿수를 지정해주는 toFixed()를 사용하면 된다. 대신... string으로 변환된다. 소숫점이 있는 경우, parseFlo.. 2020. 7. 4.
[Sequelize] there is no unique constraint matching given keys for referenced table 원인과 해결방법 기존에 MySQL+Sequelize를 사용하다가, PostgreSQL로 DB를 이전하게 되었다. dialect랑 접속정보만 바꿔주면 되는 간단한 작업이었는데, 아래와 같은 에러를 만나게 되었다. there is no unique constraint matching given keys for referenced table "rfqs" 멀쩡하게 잘 되던게 DB를 바꾸니까 에러가 났기 때문에 설정이라든지 문법의 문제겠거니 했는데.. 위 에러는 PK와 FK가 일치하지 않을 때 나는 에러다. 내 경우 한 테이블에 PK가 두개 지정되어 있었고, 해당 키를 FK로 갖는 다른 테이블은 두 PK중 하나만을 FK로 지정하고 있었다. 예를들어 (아무렇게나 쓴 수도코드다) Person { id: integer; email: .. 2020. 6. 23.
라이브러리 vs 프레임워크 공통점과 차이점 library vs framework 라이브러리와 프레임워크는 늘 헷갈린다. 내가 내려받은 코드가 어떤 것인지 검색해보면 의견이 분분할 때도 있다. 두 가지의 공통점은 개발자의 시간 절약에 도움을 주는 코드 뭉치라는 것이다. 일단은 위키백과 정의를 보자. 라이브러리 : 라이브러리는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다. 여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴, 클래스, 값, 자료형 사양을 포함할 수 있다. 프레임워크 : 컴퓨터 프로그래밍에서, 소프트웨어 프레임워크는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조, 프레임워크라고도 한다. 이렇게 매우 폭넓은 정의는 이 용어를 버즈워드로서, 특히 소프트웨어 환경에서 .. 2020. 6. 20.
[Azure to AWS] Azure Pipeline으로 AWS Lambda 배포하기 참고 : 기존 Azure function을 옮기는 경우, 일단 새로 생성하고 코드를 옮기는게 낫습니다. 프로젝트 구조가 아예 달라서 새로 만드는걸 추천합니다.. 1. 람다 생성 새로운 람다를 생성합니다. 2. IAM User 생성 또는 선택 AWSLamdbdaFullAccess 권한을 가진 IAM User를 생성하거나, Access key ID & Secret을 준비합니다. 프로그래밍 방식 액세스 타입이어야 합니다. 3. Azure Repo 생성 리포지토리를 생성하고 파일을 추가합니다. 처음엔 아래와 같은 구조로 생성하면 됩니다. my-lambda ├── index.js └── .env // index.js exports.handler = (event, context, callback) => { // T.. 2020. 6. 19.