일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩테스트
- 스택
- 자료구조
- 프로그래머스
- 프론트엔드
- RxJS
- C
- 프로세스
- GraphQL
- vue3
- 배열
- 해시테이블
- 타입스크립트
- 이진탐색
- 알고리즘
- cors
- 자바스크립트
- alexnet
- 큐
- 컨테이너
- pytorch
- Machine Learning
- APOLLO
- 포인터
- 연결리스트
- 웹팩
- 릿코드
- 연결 리스트
- 브라우저
- RT scheduling
- Today
- Total
목록프로그래머스 (14)
프린세스 다이어리
> 문제 바로가기 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 1. 접근 방법 (1) 내림차순으로 정렬한다. let arr = citations.sort((a, b) => b - a); (2) 정렬한 배열을 반복문을 돌면서 각 논문의 인용 수와 인덱스(논문 수)를 비교한다. 논문의 인용 수가 논문 수보다 크면 논문 수를 1씩 더하고, 같으면 그 논문 수를 리턴한다. for (let i = 0; i i) { answ..
> 문제 바로가기 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 1. 접근 방법 (1) 조건을 충족하는 방식으로 compare하는 함수를 만든다. const isLeftBiggerThanRight = (left, right) => { if ((String(left) + String(right)) >= (String(right) + String(left))) { return true; } else { return false; } } (2) 퀵 정..
나중에 여유가 생기면 다시 푸는 걸로...ㅠ 1. Node, Stack, push, pop, getTop 정의해주기 #include #include #include #define INF 99999999; typedef struct Node { int data; struct Node *next; } Node; typedef struct Stack { Node *top; int count; } Stack; void push(Stack *stack, int data) { Node *node = (Node*) malloc(sizeof(Node)); node -> data = data; node -> next = stack -> top; stack -> top = node; stack -> count++; } i..
1. 배열로 접근하는 방법 전체 풀이 function solution(bridge_length, weight, truck_weights) { // queue 초기화 let queue = new Array(bridge_length).fill(0); let seconds = 0; while (queue.length) { // queue 하나씩 실행 queue.shift(); seconds++; let queueSum = queue.reduce((acc,cur) => acc + cur, 0); if (truck_weights.length) { if (queueSum + truck_weights[0] queue에 push(); let temp = truck_weights.shift(); queue.push(te..
좀 지저분하긴 하나 나름 논리적이라고 생각^^ function solution(priorities, location) { let nodes = priorities.map((num, idx) => { return { priority: num, id: idx } }); let queue = []; // queue에 하나씩 집어넣는 로직 while (nodes.length !== 0) { let highest = 0; for (let i = 0; i highest) { highest = nodes[i].priority; } } let temp = nodes.shift(); if (temp.priority < highest) {..
function solution(progresses, speeds) { let answer = []; let workDays = progresses.map((work, i) => Math.ceil((100 - work) / speeds[i])) let prodDay = 0; for (let i = 0; i < workDays.length; i++) { if (prodDay < workDays[i]) { answer.push(1); prodDay = workDays[i]; } else { let temp = answer.pop(); answer.push(++temp); } } return answer; } 진도 95 90 99 99 80 99 속도 1 1 1 1 1 1 소요기간(일) 5 10 1 1 20 ..