문제 철수는 그의 바둑이들을 데리고 시장에 가려고 한다. 그런데 그의 트럭은 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..
이진트리란 이진트리는 모든 노드가 0개 또는 2개의 자식 노드를 갖는 트리입니다. 모든 순회는 왼쪽 , 오른쪽을 기준으로 설명됩니다. 전위 순회 부모 >> 왼쪽 >> 오른쪽 출력을 의미합니다. 중위 순회 왼쪽 >> 부모 >> 오른쪽 출력을 의미합니다. 후위 순회 왼쪽 >> 오른쪽 >> 부모 출력을 의미합니다. 예시 문제 이진트리 순회(깊이 우선 탐색) 아래 그림과 같은 이진트리를 전위 순회와 후위 순회를 연습해보세요. 풀이 function solution(n) { let answer = ""; function DFS(V) { if (V > 7) { return; } else { answer += V; DFS(V * 2); DFS(V * 2 + 1); console.log(V); } } DFS(n); re..
문제 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)); 저번에 스택과 재귀 함수에 대해 배웠는데 이를 응용해서 문제를 푸는 중에 있습니다.
재귀 함수란? 함수가 직접 또는 간접적으로 자신을 호출하는 프로세스를 재귀함수라고 합니다 재귀 알고리즘을 이용하면 복잡한 문제들도 간단하게 해결할 수 있습니다 반복문도 마찬가지지만 재귀함수도 종료지점을 제대로 생각하지 않고 구현을 하면 스택 오버 플로우가 발생할 수 있으니 항시 주의해서 구현을 해줘야합니다. 재귀 함수 예제 function solution(n) { function DFS(L) { if (L === 0) return; else { console.log(L); DFS(L - 1); } } DFS(n); } console.log(solution(3)); 반대로 콘솔로그를 DFS 밑에 위치시키게 된다면 function solution(n) { function DFS(L) { if (L === 0..
/* get input */ const answers = [1, 2, 3, 4, 5]; /* get input end */ /* solve */ function solution(answers) { var answer = []; let first = []; let second = []; let third = []; let firstCollect = 0; let secondCollect = 0; let thirdCollect = 0; while (first.length < 10001) { first.push(...[1, 2, 3, 4, 5]); } while (second.length < 10001) { second.push(...[2, 1, 2, 3, 2, 4, 2, 5]); } while (third.l..
/* get input */ const N = 5; const stages = [2, 1, 2, 6, 2, 4, 3, 3]; /* get input end*/ /* solve */ function solution(N, stages) { var answer = []; let itemCount = []; let rateArr = []; stages.map((item) => { const findIndex = itemCount.findIndex((itemCountItem) => { return +itemCountItem.title === +item; }); if (findIndex === -1) { itemCount.push({ title: item, count: 1 }); } else { itemCount ..
- Total
- Today
- Yesterday
- WSL2
- 프리온보딩
- 윤성우 열혈C프로그래밍
- 스토리 북
- 아차산
- electron
- error
- javascript
- import/order
- NextApiRequest
- env
- nextjs
- 노개북
- 노마드코더
- 원티드
- createPortal
- TopLayer
- jest
- 프론트앤드
- 초보
- Storybook
- 북클럽
- C언어
- 우아한테크코스
- 위코드
- React
- CLASS
- nodejs
- NextRequest
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |