일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- JS console
- typescript
- 반복줄이기
- React.js
- TSDoc
- 타입스크립트
- NonNullable
- returnType
- 타입좁히기
- Chart.js
- 폰트적용하기
- click and drag
- CSS
- 공통컴포넌트
- javascript
- const 단언문
- react
- 성능최적화
- 레이아웃쪼개기
- 누구나 자료구조와 알고리즘
- 커스텀
- React Native
- reactjs
- 2022
- 제네릭
- vue.js
- 개발콘텐츠
- 티스토리꾸미기
- utilty type
- 리액트
- Today
- Total
목록Development/알고리즘 (40)
몽땅뚝딱 개발자
function solution(number, k) { const result = []; for (let i=0; i 0 && result[result.length - 1] 0) { k--; result.pop(); } result.push(number[i]); } result.splice(number.length - k, k); return result.join("");}
function solution(people, limit) { people.sort((a, b) => a - b) let count = 0 while (people.length !== 0) { if (people[0] + people[people.length-1]
이 문제는 처음 프로그래머스 시작했을 때는 못 풀었던건데...문제를 계속해서 풀다보니까 접근방법도 알겠구 잘 풀리는 듯🤔 function solution(progresses, speeds) { let answer = [] const getCompletedTaskCount = () => { let count = 0 while (progresses.length > 0 && progresses[0] >= 100) { progresses.shift(); speeds.shift(); count++; } return count; } while (progresses.length > 0) { for (let i = 0; i = 100) { con..
function solution(cacheSize, cities) { const HIT = 1, MISS = 5 const cache = [] let totalTime = 0 if (cacheSize === 0) return MISS * cities.length for (let i = 0; i = cacheSize) { cache.shift() } } cache.push(searchTarget) } return totalTime}
1. indexOf로 배열자체의 위치를 바꿨다가 시간초과되고... (‼️)2. Map으로 풀었다. function solution(players, callings) { const playerIndexes = {}; players.forEach((player, index) => { playerIndexes[player] = index; }); callings.forEach(name => { const currentPlayerPosition = playerIndexes[name]; const prevPlayer = players[currentPlayerPosition - 1]; players[currentPlayerPosition] = ..
처음에 읽자마자 "이건 트리다!"라고 당당하게 생각한 뒤 코드를 짰다. 그런데.. 최소경로를 구하기위해 DFS로 접근하려고보니 트리라는 자료구조가 이 문제와 맞지 않다는 판단이 들었다. 더 정리를 해보자면 단순히 부모-자식 관계를 갖고있고 노드를 순차적으로 방문할 수 있다는 사실 하나로 트리로 접근했지만... 상위 부모가 하나인 트리가 이상해보였다. 그리고 키패드 구조상 트리처럼 단방향이 아닌 서로 연결될 수 있는 양방향 연결이 가능하고 싸이클이 존재하는 자료구조가 필요하다는 사실을 깨닫는다. 예전에 공부했던 자료구조 책을 펼쳐보고 '이건 그래프로 풀어야 하는거구나' 이마를 탁 치고 그래프로 접근했다. (조금 성장한 듯..) 그래프에 대해 공부하며 맨해튼 거리에 대해서도 알게됐다. 알고리즘 넘 재밌어....
처음 구구절절 Date로 풀다가 테스트케이스 3번이 해결되지않아서 힌트를 봤더니 prev를 한 뒤 현재 이동한 시간이 오프닝 시간 내에 있는지 검사했어야 헸다. Date로 하다보니 너무 코드가 구구절절했지만 푼게 아까워서 집착하다가.... 결국 버리고 새롭게 품..^0 ^ const prev = (time) => { time -= 10 return time { time += 10 return time > videoLength ? videoLength : time}const checkOpeningTime = (time, openingStartTime, openingEndTime) => { return time >= openingStartTime && time { const [mm, ss] ..
function solution(totalCount, limit, power) { let result = 0 for (let i = 1; i limit ? power : count) } return result}
// answer 1const 정답패턴 = { 1: [1, 2, 3, 4, 5], 2: [2, 1, 2, 3, 2, 4, 2, 5], 3: [3, 3, 1, 1, 2, 2, 4, 4, 5, 5],}function solution(answers) { const 학생별정답을찍는패턴 = {} const 학생별정답의수 = {} const 정답 = new Array(answers.length).fill().map((_, index) => answers[index % answers.length]) Object.values(정답패턴).forEach((array, index) => { 학생별정답을찍는패턴[index + 1] = new Array(answers.length).fill().map((_, ..
✨ 힙(Heap) 1.1 정의 트리의 자료구조로, 특수한 종류의 이진트리이다. 가장 크거나 작은 원소를 알아내야 할 때 유리하다. 우선순위 큐를 구현할 때 효율적으로 쓰이는 자료구조이다. 1.2. js로 최소힙 구현하기 class MinHeap { constructor() { this.heap = [null] } push(value) { this.heap.push(value) let currentIndex = this.heap.length - 1 let parentIndex = Math.floor(currentIndex / 2) // 현재 값보다 부모 값이 더 작을 떄 까지 (=최소힙의 형태를 만들 때 까지) swap 한다. while (parentIndex !== 0 && this.heap[curr..