일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- useDispatch
- 이코테
- redux
- programmers
- SW
- createSlice
- 테코테코
- java
- 리액트
- 자바
- Get
- redux-toolkit
- react
- 프로그래머스
- 항해99
- 매일메일
- 항해플러스
- react-redux
- react-router
- JavaScript
- redux-saga
- Algorithm
- 코딩테스트합격자되기
- 알고리즘
- sw expert academy
- Python
- json-server
- C++
- maeil-mail
- axios
- Today
- Total
목록분류 전체보기 (302)
Binary Journey
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/rcyz7/btrh3pBZDV3/7gWkAlZ7cOhoYxXHYDoRUK/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript function solution(nums) { const result = [ ...new Set(nums)]; return result.length < nums.length / 2 ? result.length : nums.length / 2; } 이렇게 해도 된다 function solution(nums) { const result = [ ...new Set(nums)]; return Math.min(result.length, nums.length / 2); }
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/K51yq/btrhUiKXzuO/IB0WnjkzFLfow2MM6gvoIk/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 테스트케이스 5, 12에서 계속 통과가 안돼서 힘들었다. 질문하기에서 찾아보니 잃어버렸는데 여유분도 가지고 있는 학생이 존재하는 경우가 있다고 한다. 그래서 filter를 해줘야 했음 ** Javascript 오랜만에 자바스크립트로 6점 받음 function solution(n, lost, reserve) { let realLost = lost.filter((item) => !reserve.includes(item)); let realReserve = reserve.filter((item) => !lost.includes(item)); let answer = n - realLost.leng..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ZDUYj/btrhX2nwjdP/qXMhkuNXnpgRLcHRbRbdG0/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 오름차순 정렬 후 누적합계가 budget 값 이하인 것만 추출 ** Javascript function solution(d, budget) { d.sort((a, b) => a - b); while(d.reduce((a, b) => a + b, 0) > budget) d.pop(); return d.length; } 효율성이 더 나은 건 아래 function solution(d, budget) { d.sort((a, b) => a - b); let total = 0; for (let i = 0; i budge..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bkKsVv/btrhUUXoyQ5/mmqlcNUMz4YY7p8O88knF0/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript function solution(left, right) { let answer = 0; let numbers = range(left, right, 1); console.log(numbers) for (const number of numbers) { let count = 0; for (let i = 1; i Array.from({ length: (stop - start) / step + 1}, (_, i) => start + (i * step)); 감탄만 나왔던 소스 function solution(left, right) { let answer = 0; for (le..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ddQPRN/btrh3qOlaE1/6DOFs0PEM7VKFev1UGowHK/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript function solution(n) { let ternary = []; let answer = 0; while (n >= 1) { if (n > 1) { ternary.push(n % 3); } else { ternary.push(n); } n = parseInt(n / 3); } for (let i = 0; i < ternary.length; i++) { answer += ternary[i] * Math.pow(3, ternary.length - 1 - i); } return answer; } toString 을 이용한 방법 효율성은 위 코드가 더 높다 cons..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/w4uqo/btrhX1PtEdu/Zx7Hnxa5rVSn2dDmHrGAuk/img.png)
위상정렬은 순서가 정해져 있는 작업을 차례로 수행해야 할 떄 순서를 결정해주는 알고리즘이다. 위상정렬은 여러 개의 답이 존재할 수도 있고 사이클이 발생하는 경우 수행이 불가능하다는 특징이 있다. 위상 정렬 수행으로는 스택과 큐를 사용하는 데 큐로 더 고급적인 수행이 가능하다고 인강에선 큐를 이용하여 소스를 작성하였다. 순서로는 진입차수가 0인 정점을 큐에 삽입 큐에서 원소를 꺼내어 연결된 모든 간선 제거 간선 제거 이후 진입차수가 0이 되는 정점을 큐에 삽입 큐가 빌 때까지 2,3번 과정 반복 - 모든 원소를 방문하기 전에 큐가 빈다면 사이클이 존재한다는 것 모든 원소를 방문했다면 큐에서 꺼낸 순서가 위상 정렬의 결과임 위 그림을 표로 나타내면 정점 1 2 3 4 5 6 7 진입차수 0 1 1 1 1 2..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cjyjOw/btrh2g563Me/WEUkJUwoMWK43wt4kwtVQ0/img.png)
지난번 배운 데이크스트라 알고리즘과 비슷하다. 데이크스트라는 한 정점에서 모든 노드로 향하는 가장 최단 거리를 구하는 것이고 플로이드 알고리즘은 모든 노드에서 모든 노드로 가는 최단 거리를 구한다는 점에서 약간의 차이점이 있다. 위 설명이 이해가 가기 어렵겠지만 예를 들어 문래동, 목동, 화곡동, 신대방동 이렇게 네 곳이 있을 때 문래동을 경유하는 최단 거리, 목동을 경유하는 최단거리, 화곡동을 경유하는 최단 거리, 신대방동을 경유하는 최단거리를 구한다고 생각하면 된다. 위 노드에 대해 코드를 작성하자면 ** C++ #include int number = 4; int INF = 1000000000; // 자료 배열 초기화 int a[4][4] = { { 0, 5, INF, 8 }, { 7, 0, 9, I..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ER7gS/btrgDUEtR3p/ppWzJbEBjebckiPrM6tOiK/img.gif)
https://www.inflearn.com/course/algorithm-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8B%A4%EC%8A%B5/lecture/12354 알고리즘의 개요와 실습 환경 구축 - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com 인프런 25강에 대한 리뷰다. 데이크스트라 알고리즘은 dp (dynamic programming)을 이용한 최단 경로 탐색 알고리즘이다. 그리드 알고리즘으로 분류되기도 한다. (매번 가장 적은 비용의 노드를 선택해서 정렬하기 때문) * 최단 거리를 구할 때 그 이전까지 구했던 최단 거리 정보를 그대로 사용한다는 특징이 있다. ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/tl2cR/btrgHDWq3gt/AlhU609f5ODIDdPMU7cWkK/img.gif)
https://www.inflearn.com/course/algorithm-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8B%A4%EC%8A%B5#curriculum [무료] 알고리즘의 개요와 실습 환경 구축 - 인프런 | 강의 알고리즘을 배우며, 실무에서는 알고리즘이 어떻게 활용되는지 알아봅니다., [임베딩 영상] 알고리즘의 개요와 실습 환경 구축 알고리즘은 문제를 해결하는 절차입니다.입력, 출력, 유한성, 명 www.inflearn.com 인프런 강의 22강에 대한 리뷰이다. 에라토스테네스의 체는 프로그래머스 소수찾기에서 다뤘던 터라 익숙한 개념이다. https://binaryjourney.tistory.com/120 [프로그래머스] 소수 찾기 출처: 프로그래머스 코딩 테..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/A7Kvk/btrgvpKqQxU/kUXYwANq0PFKuzRItKFJUK/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript sort를 이용하여 내림차순으로 바꿔도 되지만 map 자체에서 그냥 비교한 후 바로 배열을 리턴하는 것도 좋다. function solution(sizes) { // sizes.map((item) => item.sort((a, b) => b - a)); sizes = sizes.map(([w, h]) => w item[0])); let vMax = Math.max.apply(null, sizes.map((item) => item[1..