2021년 1월 13일에 Velog에 작성한 글을 옮겨온 글입니다. 프로그래머스 - [카카오 인턴] 키패드 누르기 풀이 우선 각 번호 사이의 거리를 구해둔 후(dist 객체), 번호에 따라 적절한 손가락을 사용하도록 분기처리했다. 현재 손가락 위치(left, right 변수)를 저장하여 가운데 줄 번호를 누를 때 번호 사이의 거리를 측정할 수 있게 했다. if else 분기처리가 많다보니 깔끔한 느낌이 없어 아쉬웠지만, 이 이상 줄이면 오히려 지저분해질거 같고, 문제에서 제시한 스탭과 맞아 아래 코드로 제출했다. function solution(numbers, hand) { const dist = { // 가운데 줄 번호와 각 번호 사이의 거리. ex) dist[2][0] - 2번과 0번 사이의 거리: ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cgZPg6/btq6Ac1XQY0/CfQzqbLUOd9BE4Wmaq5XDk/img.png)
2021년 2월 10일 Velog에서 옮겨온 글입니다. 프로그래머스 - 124 나라의 숫자 function solution(n) { let answer = ''; while (n > 0) { answer = (n % 3 || 4) + answer; n = Math.floor((n - 1) / 3); } return answer; } 3진법을 구할 때와 비슷하게 계산합니다. 단, n을 3으로 나눈 나머지가 1이나 2일 경우에는 그대로 사용하고, 나머지가 0인 경우에는 0 대신 4를 사용하며 n - 1로 몫을 구합니다. 나머지가 0일 경우, 3진법에서는 10으로 표기되는데, 124 나라에서는 4로 표기되므로 몫을 구할 때 -1을 해주어야 합니다. (나머지가 1이나 2일 경우, n / 3이나 (n - 1) /..
2021년 1월 15일 Velog에 작성한 글을 옮겨온 글입니다. 프로그래머스 - [3차] 파일명 정렬 정규표현식 캡처 그룹을 활용한 문제 풀이입니다. 풀이 Array.prototype.sort에 인자로 compareFunction을 전달하여 문제에서 정의한 순서대로 파일명을 정렬하는 문제입니다. 정규표현식으로 그룹을 캡처하여 HEAD, NUMBER, TAIL을 나눈 다음, HEAD 부분은 localeCompare 함수로 비교하고, NUMBER 부분은 + 기호를 이용해 숫자로 형 변환하여 비교했습니다. (\D+) HEAD는 숫자가 아닌 문자로 이루어져 있으며(\D), 최소한 한 글자 이상(+)이다. (\d{1, 5}) NUMBER는 한 글자에서 최대 다섯 글자 사이({1, 5})의 연속된 숫자(\d)로 ..
Stack [참고] stack은 LIFO(Last In First Out) 구조의 자료구조로 맨 마지막에 넣은 데이터가 가장 먼저 나옵니다. 구현 내용 데이터를 넣는 push, 데이터를 빼는 pop 메서드 구현 마지막 데이터(pop 메서드 호출 시 나올 데이터)를 확인할 수 있는 peek 메서드 구현 꽉 찼는지(isFull), 비었는지(isEmpty) 확인할 수 있는 유틸리티 메서드 구현 함수를 의도와 다르게 사용할 경우 에러 발생 capacity에 양의 정수가 아닌 값을 넣는 경우 매개변수 없이 push를 하는 경우 push, pop, peek이 불가능한 경우(각각 full인 경우, empty인 경우) Symbol 값을 반환하여 알림 소스코드 더보기 // Stack.js export default cl..
이 글은 주니어 개발자가 쓴 글로 오류가 있을 수 있습니다. 문제가 있거나 수정이 필요한 부분은 댓글로 알려주시면 감사하겠습니다. Mozilla 기여자가 작성한 MDN에 대해는 CC-BY-SA 2.5 라이선스에 따라 사용할 수 있습니다. MutationObserver란? DOM 변경을 관찰합니다. DOM3 이벤트 명세의 Mutation Events를 대체합니다. 구문 var observer = new MutationObserver(callback) callback: DOM 변경 시 호출될 함수. entries: 각 DOM의 변경을 나타내는 MutationRecord 형식의 오브젝트 배열. observer: Observer 자기 자신. 특정 조건이 되면 관찰을 중단하는 등의 용도로 사용 가능. 메서드 di..
2021년 1월 11일에 Velog에 작성한 글을 옮겨온 글입니다. 프로그래머스 - k번째 수 배열 구조 분해 할당으로 직관적인 코드 짜기 풀이 Array 객체의 프로토타입 메서드를 사용하여, i번째 숫자부터 j번째 숫자까지 자르고(slice), 정렬한 후(sort), k번째에 있는 수를 리턴합니다. Array.prototype.sort 함수는 요소를 문자열로 변환하고 유니 코드 코드 포인트 순서로 비교하여 정렬하는데, 이 문제에서는 숫자 순으로 정렬해야 하므로 별도로 compareFunc를 전달해줍니다. 나의 풀이 function solution(array, commands) { const compareFunc = (a, b) => a - b; return commands.map(command => {..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/RsFEa/btq6zp8MiNE/7NK54OcRLX8bVf0nysWXn0/img.png)
2021년 2월 8일 Velog에 작성한 글을 옮겨온 글입니다. 프로그래머스 - 스킬트리 답안 1 function solution(skill, skill_trees) { const skill_regex = new RegExp(`[^${skill}]`, 'g'); const skill_len = skill.length; return skill_trees.reduce((cnt, tree) => { tree = tree.replace(skill_regex, ''); // skill에 속하는 문자만 남김 for(let i = 0, tree_len = tree.length; i < skill_len && i < tree_len; i++) { if (skill[i] !== tree[i]) return cnt; //..
2021년 1월 18일에 Velog에 작성한 글을 옮겨온 글입니다. 프로그래머스 - 튜플 풀이 function solution(s) { // const tuples = s.slice(2, -2).split('},{').map(cur => cur.split(',')); const tuples = JSON.parse(s.replace(/{|}/g, (match) => (match === '{' ? '[' : ']'))); const set = new Set(); tuples.sort((a, b) => a.length - b.length); tuples.forEach(t => t.forEach(num => set.add(+num))); return [...set]; } 주어진 문자열을 배열로 파싱하여 배열의 ..
- 페이지 특정 위치 link
- file opener preference
- 웹팩 에러
- ECONNRESET
- node fs
- make-dir
- node cp -r
- fs-extra
- javascript event
- rimraf
- createAction
- node file package
- 인가
- 프로그래머스
- Storybook Error
- ModuleParseError: Module parse failed: Unexpected token
- node rm -rf
- 스터디
- mkdirp
- sass
- external editor
- JavaScript
- 스토리북 에러
- 자바스크립트
- Webpack Error
- errno 253
- node mkdir -p
- jest
- 인증
- ELIFECYCLE