[JS] 프로그래머스 / <PCCP 기출문제> / 1번 - 동영상 재생기
·
Coding Test
https://school.programmers.co.kr/learn/courses/30/lessons/340213  지금까지 풀었던 문제중 가장 고난도의 문제 (정답률 35%)알고리즘 구조를 짜는 것 자체는 어렵지 않았지만"mm:ss" 형식을 숫자형처럼 연산하는 것이 이 문제의 관건이었다. 최종 풀이 function solution(video_len, pos, op_start, op_end, commands) { let [m,s] = pos.split(':'); let res = +m*60 + +s; let [m_os,s_os] = op_start.split(':'); let res_os = +m_os*60 + +s_os; let [m_oe,s_oe] = op_end.split(':')..
[JS] 프로그래머스 / 푸드 파이트 대회
·
Coding Test
https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  lv.1부터 슬슬 이게 국어문젠가 코테문제가 싶은 문제들이 나온다.코딩을 짜는 것만큼 남이 짠 코드를 이해하는 것도 중요하기 때문에문해력을 요구하는 것 같다. 책 좀 많이 읽어야 할 듯;처음엔 문제 이해가 잘 안됐지만 예시와 설명을 보며 점차 이해해 나갔다.  최종 코드function solution(food) { let res = []; let arr = food.map((a,i)=> i>0 && a%2!==0 ? a-1 : a..
[JS] 프로그래머스 / 크기가 작은 부분 문자열
·
Coding Test
https://school.programmers.co.kr/learn/courses/30/lessons/147355  처음으로 풀어보는 Lv.1 문제인 만큼초집중하겠다는 마음가짐으로 풀이에 임했다..  최종코드function solution(t, p) { let answer = 0; for(let i=0; i 확실히 문제를 많이 푸니 전보다 수월하게 알고리즘을 짤 수 있었다.사실 전체적인 알고리즘 짜는 것보다 자료형, 인덱싱 설정하는게 더 어려운 것 같다.지금까지는 마구잡이로 디버깅 하면서 맞춰가긴 했는데앞으로는 자료형, 인덱싱 하나하나 정밀하고 꼼꼼하게 보면서 코드를 짜야겠다.  다른 사람의 풀이function solution(t, p) { let count = 0; for(let..
[JS] 프로그래머스 / 주사위 게임 3
·
Coding Test
https://school.programmers.co.kr/learn/courses/30/lessons/181916  얼마전 접했던 '야추 다이스' 라는 보드게임의 룰이 생각났다.우선 조건문 4개가 나오면 될 것 같고.,2,3,4번 조건은 그 안에서 조건문을 파생시켜 구현해야 할 것 같다.  초기 코드function solution(a, b, c, d) { let arr = [a,b,c,d] let set = [...new Set(arr)] if(set.length==1) { return 1111*a } else if(set.length==2) { return '두개 같' } else if(set.length==3) { return '세개 ..
[JS] 프로그래머스 / 배열 만들기 2
·
Coding Test
https://school.programmers.co.kr/learn/courses/30/lessons/181921 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr     프로그래머스 코테 lv.0 에서 처음으로 막혔던 문제. (정답률 73%)계속 전전긍긍하다가 갑자기 이진수 문제일 것 같다는 생각이 머리를 스쳤다.하지만 이진수 아이디어를 가지고도 문제풀이에는 진전이 없었고테스트는 통과했지만 아주 허접한 코드가 나오고야 말았다. 내 코드function solution(l, r) { let arr = [] for(let i=0; i=k) { arr.push(k) ..
서평 / 설득의 심리학 1
·
Reading Log
설득의 심리학 1 을 읽고 정리한 내용을 적어보았습니다.저자 : 로버트 치알디니 프롤로그 - 설득 심리학으로의 초대 “그러나 매우 흥미로운 점은 자기방어의 테이프를 활성화시키는 요인은 칩입자의 존재 전체가 아니라 칩입자의 어떤 특정한 ‘유발기제’라는 사실이다.” 우리 인간도 그러한 종류의, 미리 프로그램된 테이프를 가지고 있다는 사실이다. 이러한 유발기제의 예시                                                                                                                                                                                           1. “잘 알려..
[TypeScript] 타입스크립트 쓰는이유
·
TypeScript
자바스크립트는 동적 타핑(Dynamic typing) 즉 자료의 형식을 자유롭게 쓸 수 있다.자유도가 높으면 좋은 거 같지만 실은 그만큼 에러도 많이 생긴다.막 파라미터(parameter)에 string(문자열) 대신 객체(object)들어가서 에러가 생기는 경우도 있다. 타입스크립트는 자바스크립트의 업그레이드 버전이라고 생각하면 되는데자료의 타입을 철저하게 관리하는 정적 타이핑(static typing)을 지원하기 때문에자바스크립트의 이런 단점을 잘 보완할 수 있다. 또한 남이 만든 변수나 함수가 어떤 타입인지 알려주고위 특징들 덕에 에러메시지도 자세하고 친절하게 알려준다. 특히 큰 프로젝트에서 타입스크립트가 더 필수적이기 때문에웬만한 채용공고에서도 타입스크립트의 숙련도를 요한다.
[TypeScript] 타입스크립트 기본 설치와 환경 세팅
·
TypeScript
타입스크립트 기본 설치와 환경 세팅에 대해 알아보자. Typescript 설치/세팅 Node.js 최선버전을 설치하기. https://nodejs.org/en Node.js — Run JavaScript EverywhereNode.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.org 최신버전 아니면 TS 컴파일러 설치하는데 에러가 날 수 있다.  에디터 터미널에 다음과 같이 입력한다.npm install -g typescript *전역(global) 설치 하는 거라 컴퓨터에 한 번만 설치하면 된다.  이제 작업폴더에 .ts 파일을 생성해 코드를 짤 수 있다. 근데 웹 브라우저는 js 파일만 읽을 수 있기 때문에컴파일 작..
[JavaScript] 자바스크립트 async/await 에 대해 알아보자
·
JavaScript
콜백함수를 좀더 깔끔하게 쓸려고 Promise가 나왔지만 이 역시 어려운 부분이 있다.그래서 Promise보다 훨씬 쉽게 쓸 수 있는 ES8 문법이 나왔다.’async, await’ 문법을 알아보자  asyncasync function returnPromise() { return '그냥 Promise 반환해줌';} 위 코드처럼 async를 fuction 앞에 붙여주면new Promise()를 사용한 복잡한 코드 없이도 저절로 Promise 객체가 생성이 된다.위 함수의 return 값은 Promise의 resolve()처럼 작동되는 것이다. async를 사용하여 Promise의 형식을 가지기 때문에이 함수를 실행할 때 then()이나 catch()를 붙일 수도 있다.async function ret..
[JavaScript] 자바스크립트 Promise에 대해 알아보자
·
JavaScript
Promise에 대해 알기전에우선 동기/비동기처리와 콜백함수에 대한 내용부터 알아야 한다.이 내용에 대해 이미 숙지하고 있다면 Promise 설명 부분으로 넘어가자. 동기/비동기 처리 동기 처리는 한 번에 하나의 작업만 순차적으로 처리하는 방식이다.코드가 위에서부터 아래로, 순서대로 실행되며각 작업이 완료되기 전까지는 다음 작업이 실행되지 않는 구조이다.console.log('출근');for (let i = 0; i  우리가 다루는 자바스크립트 역시 ‘동기 처리(synchronous)’ 방식을 취하고 있다.그래서 위 코드는 시간이 걸리더라도 for 반복문이 끝나야 비로소 ‘퇴근’을 출력할 것이다.  비동기 처리는 시간이 오래 걸리는 작업을 기다리지 않고,실행이 바로바로 가능한 다음 작업부터 처리하는 방식..