일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Vue3
- KDT 프로그래머스 데브코스 프론트엔드
- 리팩토링 회고
- K_Digital Training
- useEffect return
- 인프런 자바스크립트 알고리즘 문제풀이
- 백준 js
- 프로그래머스 데브코스 프론트엔드
- react customHook 예시
- 모던 javascript Deep Dive
- 머쓱이
- 투포인터알고리즘 js
- 모던 자바스크립트 Deep Dive
- 모던 자바스크립트 딥다이브
- 프로그래머스 데브코스
- react 프로젝트 리팩토링
- TypeScript 문법 소개
- useRef 지역 변수
- 프로그래머스 K_Digital Training 프론트엔드
- KDT 프로그래머스
- 모던 자바스크립트 TIL
- 개발자 특강
- 프로그래머스 K_Digital Training
- 우테캠 회고록
- Vue3 Router
- 모던 자바스크립트 Deep Dive TIL
- 프로그래머스 데브코스 프론트엔드 TIL
- 백준 node.js
- frontend roadmap study
- Frontend Roadmap
- Today
- Total
목록전체 글 (256)
프론트엔드 개발자의 기록 공간
백준 그리디 알고리즘 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
🚩 2839번_설탕 배달 브론즈1 📖 문제 설명 : N킬로그램이 있는 설탕을 5kg, 3kg 봉지를 이용하여 배달 할 때, 필요로 하는 가장 적은 봉지의 수 💡 가장 작은 봉지로 배달 해야하므로 최대한 5kg 봉지를 이용해야 한다. const fs = require('fs') const input = fs.readFileSync('/dev/stdin').toString().trim() let N = Number(input) let answer = 0 while (true) { if (N % 5 === 0) { answer += N / 5 break } N -= 3 answer += 1 if (N < 0) { answer = -1 break } } console.log(answer) 👨💻 코드 설명 반복..