전체 글
[프로그래머스] 리코쳇 로봇 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(board) { const row = board.length; const col = board[0].length; const [dx, dy] = [ [-1, 0, 1, 0], [0, 1, 0, -1], ]; const NON_DIR = -10; const movedMap = {}; const BLOCK = { empty: '.', start: 'R', obstacle: 'D', goal: 'G', }; function getStartPos(board) { for (l..
[프로그래머스] 덧칠하기 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(n, m, section) { var answer = 0; const rollerLen = m - 1; let base = section[section.length - 1]; let cur; answer += 1; while (section.length) { cur = section.pop(); if (base - cur
[프로그래머스] 대충 만든 자판 - 자바스크립트
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오랜만에 프로그래머스에 들어갔는데, 새로운 문제들이 추가되었더라. 레벨1의 난이도 치고는 생각할 부분이 조금 있어 보여서, 포스팅하게 되었다. 코드 function solution(keymap, targets) { var answer = []; const keyPos = {}; keymap.forEach((km) => { [...km].forEach((alphabet, pos) => { if (!(alphabet in keyPos)) { keyPos[alphabet] = pos + 1; } else { ..
[자바스크립트] sort함수는 왜 숫자를 이상하게 정렬할까?
이상한 자바스크립트의 sort 자바스크립트 개발자라면, 당연히 알고있는 이상함이다. 그래서 "자바스크립트 숫자 정렬"과 같은 키워드로 인터넷을 검색해보면, // 오름차순 정렬을 하고 싶으세요? arr.sort((a,b)=>a-b); // 내림차순 정렬을 하고 싶으세요? arr.sort((a,b)=>b-a); 이렇게 딱 답이 나와있다. 우리는 평소처럼 숫자 정렬에서는 a-b는 오름차순, b-a는 내림차순이구나! 하고 써먹고 끝낸다. 이것만 알아도 사실 전혀 문제는 없다. 그러나 한번쯤은 이유도 궁금해해보자. 꽤나 배울 것이 많다. 이번 포스팅에서는, 왜 저렇게 이상한 함수를 넣어줘야 하는지를 함께 알아보도록 하자. Sort의 근원지 MDN를 탐색하자. Array.prototype.sort() - JavaS..
[Debug] IDE로 리액트 프로젝트를 디버깅해보자.
디버깅...? 리액트 프로젝트에서 videos의 자료형을 보고 싶다면 어떻게 할 것인가? 가장 먼저 생각나는 방법은 console.log이다. 우리들의 강력한 디버깅 친구는 console.log다. console.log와 구글크롬으로 사실 충분할지도 모른다. 머리 아픈 디버깅 방법을 알 필요도 없고 바로 크롬 개발자도구에서 결과를 볼 수 있으니까. 그러나, console.log는 딱 개발자가 지정한 변수만을 출력해준다는 단점이 있고, 문제의 인과관계를 알기도 힘들고, 특히 this binding과 같이 조금만 어려워져도 추적이 힘들어진다. 변수가 3-4개만 연관되어 있어도, console.log(a,b,c,d); 와 같이 모두 담아줘야 한다. 때로는 특정 시점 이전과 이후로 console.log를 추가하..