
문제 10이하의 N개의 자연수가 주어지면 이 중 M개를 뽑아 일렬로 나열하는 방법을 모두 출력합 니다. 풀이 function solution(m, arr) { let answer = []; n = arr.length; let ch = Array.from({ length: n }, () => 0); let tmp = Array.from({ length: m }, () => 0); function DFS(L) { if (L === m) { answer.push(tmp.slice()); } else { for (let i = 0; i < n; i++) { if (ch[i] === 0) { ch[i] = 1; tmp[L] = arr[i]; DFS(L + 1); ch[i] = 0; } } } } DFS(0); r..
문제 다음과 같이 여러 단위의 동전들이 주어져 있을때 거스름돈을 가장 적은 수의 동전으로 교환 해주려면 어떻게 주면 되는가? 각 단위의 동전은 무한정 쓸 수 있다. 풀이 function solution(m, arr) { let answer = Number.MAX_SAFE_INTEGER; let n = arr.length; function DFS(L, sum) { if (sum > m) return; if (L >= answer) return; if (sum === m) { answer = Math.min(answer, L); } else { for (let i = 0; i < n; i++) { DFS(L + 1, sum + arr[i]); } } } DFS(0, 0); return answer; } le..

문제 1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 중복을 허락하여 M번을 뽑아 일렬로 나열하는 방법을 모두 출력합니다. 풀이 function solution(n, m) { let answer = []; let tmp = Array.from({ length: m }, () => 0); function DFS(L) { if (L === m) { answer.push(tmp.slice()); } else { for (let i = 1; i
문제 이번 정보올림피아드대회에서 좋은 성적을 내기 위하여 현수는 선생님이 주신 N개의 문제를 풀려고 합니다. 각 문제는 그것을 풀었을 때 얻는 점수와 푸는데 걸리는 시간이 주어지게 됩 니다. 제한시간 M안에 N개의 문제 중 최대점수를 얻을 수 있도록 해야 합니다. (해당문제는 해당시간이 걸리면 푸는 걸로 간주한다, 한 유형당 한개만 풀 수 있습니다.) 풀이 function solution(m, ps, pt) { let answer = Number.MIN_SAFE_INTEGER; function DFS(L, sum, time) { if (time > m) return; if (L === ps.length) { answer = Math.max(answer, sum); } else { DFS(L + 1, su..
문제 철수는 그의 바둑이들을 데리고 시장에 가려고 한다. 그런데 그의 트럭은 C킬로그램 넘게 태 울수가 없다. 철수는 C를 넘지 않으면서 그의 바둑이들을 가장 무겁게 태우고 싶다. N마리의 바둑이와 각 바둑이의 무게 W가 주어지면, 철수가 트럭에 태울 수 있는 가장 무거운 무게를 구하는 프로그램을 작성하세요. 풀이 function solution(c, arr) { let answer = Number.MIN_SAFE_INTEGER; let n = arr.length; function DFS(L, sum) { if (L === n) { if (sum answer) { answer = sum; } else return; } else { DFS(L + 1, sum + arr[L]); DF..

문제 N개의 원소로 구성된 자연수 집합이 주어지면, 이 집합을 두 개의 부분집합으로 나누었을 때 두 부분집합의 원소의 합이 서로 같은 경우가 존재하면 “YES"를 출력하고, 그렇지 않으면 ”NO"를 출력하는 프로그램을 작성하세요. 둘로 나뉘는 두 부분집합은 서로소 집합(Disjoint Set)이며, 두 부분집합을 합하면 입력으로 주 어진 원래의 집합이 되어야 합니다. 예를 들어 {1, 3, 5, 6, 7, 10}이 입력되면 {1, 3, 5, 7} = {6, 10} 으로 두 부분집합의 합이 16으로 같은 경우가 존재하는 것을 알 수 있다. 풀이 function solution(arr) { let answer = "NO", flag = 0; let total = arr.reduce((sum, item) =>..

문제 자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램 을 작성하세요. 풀이 function solution(n) { let answer = []; let ch = Array.from({ length: n + 1 }, () => 0); console.log(ch); function DFS(V) { if (V === n + 1) { let tmp = ""; console.log(ch); for (let i = 1; i 0) answer.push(tmp.trim()); console.log(tmp); } else { ch[V] = 1; DFS(V + 1); ch[V] = 0; DFS(V + 1); } } DFS(1); return answer; } console.lo..

문제 10진수 N이 입력되면 2진수로 변환하여 출력하는 프로그램을 작성하세요. 단 재귀 함수를 이용해서 출력해야 합니다. 풀이 function solution(n) { let answer = ""; function DFS(L) { if (L === 0) return; else { console.log(L); DFS(Math.floor(L / 2)); answer += L % 2; } } DFS(n); return answer; } console.log(solution(11)); 저번에 스택과 재귀 함수에 대해 배웠는데 이를 응용해서 문제를 푸는 중에 있습니다.
- Total
- Today
- Yesterday
- 프리온보딩
- 스토리 북
- 원티드
- TopLayer
- 노개북
- nextjs
- nodejs
- 노마드코더
- C언어
- env
- import/order
- error
- 우아한테크코스
- WSL2
- 아차산
- 윤성우 열혈C프로그래밍
- 초보
- javascript
- CLASS
- NextRequest
- electron
- createPortal
- 프론트앤드
- jest
- Storybook
- 북클럽
- 위코드
- React
- NextApiRequest
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |