일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- const 단언문
- NonNullable
- 커스텀
- 레이아웃쪼개기
- 공통컴포넌트
- React.js
- React Native
- 누구나 자료구조와 알고리즘
- reactjs
- JS console
- returnType
- 타입좁히기
- 폰트적용하기
- click and drag
- 2022
- utilty type
- vue.js
- 제네릭
- 티스토리꾸미기
- javascript
- 개발콘텐츠
- 성능최적화
- Chart.js
- TSDoc
- 타입스크립트
- typescript
- react
- CSS
- 리액트
- 반복줄이기
- Today
- Total
목록Development/알고리즘 (42)
몽땅뚝딱 개발자
function solution(n) { let result = 0 // 결과값 let count = 0 // 저주받지 않은 숫자의 개수 while (count
1) Math.abs(n - a) - Math.abs(n - b): 이걸로 n과 가까운 수를 찾는다.2) b - a: 이걸로 n과 가까운 정도가 동일할 때 더 높은 숫자를 앞으로 둘 수 있다. function solution(numlist, n) { return numlist.sort((a, b) => Math.abs(n - a) - Math.abs(n - b) || b - a)}
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}