일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- react customHook 예시
- 개발자 특강
- Vue3
- 백준 node.js
- 인프런 자바스크립트 알고리즘 문제풀이
- 우테캠 회고록
- Vue3 Router
- 프로그래머스 데브코스 프론트엔드 TIL
- 모던 자바스크립트 Deep Dive
- TypeScript 문법 소개
- 모던 자바스크립트 Deep Dive TIL
- 프로그래머스 데브코스 프론트엔드
- 모던 javascript Deep Dive
- 모던 자바스크립트 딥다이브
- useRef 지역 변수
- react 프로젝트 리팩토링
- useEffect return
- KDT 프로그래머스 데브코스 프론트엔드
- 백준 js
- 투포인터알고리즘 js
- 프로그래머스 데브코스
- 프로그래머스 K_Digital Training 프론트엔드
- 모던 자바스크립트 TIL
- 프로그래머스 K_Digital Training
- Frontend Roadmap
- frontend roadmap study
- 머쓱이
- KDT 프로그래머스
- 리팩토링 회고
- K_Digital Training
- Today
- Total
목록전체 글 (257)
프론트엔드 개발자의 기록 공간

백준 그리디 알고리즘 1946번_신입 사원 난이도 : 실버I 문제 설명 입출력 문제 풀이 : 입력으로 주어지는 지원자의 서류심사 성적 순위, 면접 성적 순위가 키 포인트이다. 점수가 아닌 순위이다. 또한 문제에서 "어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적이 모두 떨어진다면 A는 결코 선발되지 않는다." 이 말은 즉 A가 B보다 성적이든 면접이든 한 개의 등수만 높다면 뽑힌다는 얘기이다. 따라서 주어진 입력값을 성적 순위나 또는 면접 순위별로 정렬을 해준다(필자는 성적 순위 기준으로 정렬) 이후, 성적 순위별로 높은순서대로 정렬이 되어있으므로 면접 순위만 따져줘서 합격인지 불합격인지 가려내면된다. 성적 순위가 1등인 사원은 무조건 합격이므로 카운트를 세어준다..

백준 그리디 알고리즘 2217번_로프 난이도 : 실버II 문제 설명 입출력 문제 풀이 : 주어진 식에서 가장 최소 값으로 만들면된다. 주어진 예제에서는 55-(50+40) 일때 가장 최소 값이 나온다. 즉, - 기준으로 입력을 받아 리스트에 정렬해준다. 그러면 리스트 안에는 숫자만 있거나 +연산이 존재한다. 반복문을 통해 + 연산 기준으로 연산을 수행해준후 리스트를 반복문으로 돌면서 값을 빼주면 최소값이 나온다. 예를들어 55-50+40+20-10+5 가 입력으로 주어지면 -기준으로 나누어준다. [55, 50+40+20, 10+5] 가 된다. 이후 리스트 요소별로 계산을 해준다. [55, 110, 15] 가 된다. 이후 반복문을 통해 값을 빼주면 최소값이 된다. 55 - 110 - 15 = -70 fun..

백준 그리디 알고리즘 2217번_로프 난이도 : 실버IV 문제 설명 입출력 문제 풀이 : 주어진 로프의 중량 순으로 오름차순 정렬을 시행한다. 이후 반복문을 통해 순서대로 n번째 중량과 n번부터 마지막까지 로프의 개수를 곱했을때 최대값을 저장한다. 예를들어 [10,15,20,25] 중량의 4개의 로프가 있다면 순서대로 10 * 4개 중량, 15 * 3개, 20 * 2개, 25 * 1개 에서 최대값이 정답이다. 왜냐하면 여러개의 로프가 있을때 최소 중량 기준으로 들 수 있으므로 뒤로갈수록 작은 로프는 빼주고 계산해야한다. // 실버4 로프 function solution(n, list) { // js 정렬방법 list.sort(function(a, b) { return a - b; }) let result..

백준 그리디 알고리즘 5585번_거스름돈 난이도 : 브론즈II 문제 설명 입출력 문제 풀이 : 이 문제도 전형적인 그리드 알고리즘 유형이다. 1000엔에서 입력으로 주어진 물건값을 뺀 다음에 잔돈 리스트를 토대로 잔돈을 계산해주면 된다. //브론즈2 거스름돈 function solution(pay, input, list) { let money = pay - input; let count = 0; for(i of list){ if(money === 0){ break; } //몫을 count하면서 잔돈 개수 카운트 count += parseInt(money / i); money %= i; } console.log(count); } const { format } = require("path"); const r..

백준 그리디 알고리즘 11047번_동전 0 난이도 : 실버 II 문제설명 입출력 문제 풀이 : 이 문제의 핵심은 회의 시작 시간과 끝나는 시간이 주어지는데 겹치지 않게 회의를 진행할때 몇번의 회의를 진행할 수 있는지 파악하면된다. 일단 주어진 입력을 회의가 끝나는 시간을 기준으로 정렬을 해준다. 왜냐하면 회의가 끝나야지만 다음 회의가 진행되기 때문이다. 이후 정렬된 회의 목록을 기준으로 반복문을 통해 n번째 회의 끝나는 시간과 n+1번째 회의 시작을 비교한다. n+1이 더 크거나 같다면 회의 끝난후 다음 회의를 바로 시작할 수 있기 때문이다. 이렇게 한다면 최대 회의 개수를 파악할 수 있다. // 실버2 회의실배정 function solution(n, list) { //회의 끝나는 시간 기준으로 정렬 l..

백준 그리디 알고리즘 11047번_동전 0 난이도 : 실버 I 문제 설명 입출력 문제 풀이 : 그리디의 대표 유형 문제 중 하나이다. 주어진 돈을 화폐에 맞게 최소 개수를 구하면된다. 주어진 화폐를 큰 순서대로 돈이랑 비교한다. 주어진 돈이 화폐보다 더 클시 나누어 떨어질 수 있으니깐 돈/화폐의 몫을 카운트를 해주고 나머지를 주어진 돈으로 교체해줍니다. 이런식으로 가지고 있는 돈과 화폐를 차례로 나누어주면서 최솟값을 구할 수 있다. function solution(n, k, list) { let count = 0; for(let i of list) { if(k === 0){ break; } if(k >= i){ count += parseInt(k / i); k = k % i; } } console.log..

백준 그리디 알고리즘 11399번_ATM 난이도 : 실버III 문제 설명 입출력 문제 풀이 : 인출 시간의 최솟값을 구하는 것이 핵심이다. 최솟값을 구할려면 해당 줄을 오름차순 정렬을 우선적으로 해주고 반목문을 통해 누적값을 카운트 해주면된다. function solution(n, list) { //js sort는 ASCII 문자 순서로 정렬되어 숫자의 크기대로 나오지 않음 list.sort(function(a, b) { // 오름차순 return a - b; }); let count = 0; for(let i=0; i