일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- javascript
- 함수 이놈
- 2667
- 1931
- html5
- 유사배열
- 1543
- 배열같은배열아닌너
- 함수 arguments
- 1904
- 자류구조
- event loop
- Async/Await
- 1568
- 함수 선언문
- 렉시컬 스코프
- 1236
- 11399
- 비동기처리
- setTiemOut
- 백준
- baekjoon
- 동적계획법
- 1302
- 11047
- 탐욕 알고리즘
- 호이스팅
- 1668
- 9461
- 함수 parmater
- Today
- Total
목록탐욕 알고리즘 (4)
두치의 개발공부
문제 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문제풀이 최솟값을 구하는거기 때문에 빼는 값이 최대인 경우를 구하면 총 합의 최솟값을 구할 수 있다. 우선 -로 split하여 - 뒤에 괄호로 묶일 수 있는 + 연산자를 나눈다. ex) "55-50+45-20-10+30" => [55,50+45,20,10+30] 그 후에 +가 섞여있는 문자열을 +로 split한 후 합 연산을 한다. ex) [55,50+45,20,10+30] => [55..
문제 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제풀이 하나의 회의실에 여러개의 회의 일정이 있고 이 일정을 최대로 잡을 수 있도록 한다. 회의를 최대로 할려면 짧은 회의를 많이 잡는게 효율적이다. 등록된 회의를 아래 기준으로 정렬한다. 1. 제일 빠르게 끝나는 회의 순서 2. 끝나는 시간이 같을 시에는 시작 시간이 빠른 순서 이렇게 정렬하여 순서대로 회의를 잡는다. 시작 시간이 이전 종료 시간보다 나중이면 새로운 회의이다. 코드 const answer = ([n, ...arr]) => { const times = arr.map((list) => lis..
문제 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제풀이 매 순간 최적의 방법을 찾아내는 탐욕 알고리즘의 문제이다. 최소의 동전으로 가치의 값을 충족시켜야 하기 때문에 가치를 가장 큰 동전으로 많이 채워야 동전을 적게 쓸 수 있다. 오름차순으로 입력받는 동전을 내림차순으로 정렬하여 앞에서 부터 가치가 동전으로 나누어지는 값이면 몫은 사용된 동전 갯수로, 나머지값은 앞으로 채워..

문제 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제풀이 탐욕 알고리즘을 적용하여 풀면 문제를 해결 할 수 있다. 지금 당장 시간이 가장 적게 걸리는 사람의 순서를 앞으로 하여 기다리는 시간을 최소화 하면 총 걸리는 시간을 최소화 할 수 있다. 처음에 문제를 풀 때는 각각의 사람이 기다린 시간과 소요되는 시간을 배열에 넣어서 제일 마지막에 더하는 방법으로 풀었고, 두번째에는 다른 사람들이 푼 풀이를 보니 이중 for문으로 간략하게 풀었길래 좀 더 좋은 풀이인 거 같아 ..