본문 바로가기

재귀4

[백준 1920/javascript] 수 찾기 포함 여부를 파악하는 것뿐이지만, 많은 범위를 제한 시간내에 탐색하기가 힘들다 일반 완전 탐색으로는 10만 * 10만 의 경우의 수이니 시간 초과가 되므로 이진 탐색을 통해 문제를 풀었다 반복문을 사용해도 되지만 재귀함수로 풀어보았다 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net let input = []; const readline = require("readline").createInterf.. 2022. 10. 21.
[백준 1629/javascript] 곱셈 큰 수를 사용해야 하니 BigInt 를 알아야 하고 시간내에 풀어야 하니 재귀를 사용해서 풀어야 한다 두가지를 알아야 풀수있으니 생각보다 정답률이 낮은 문제다... 재귀 공부하려고 풀었다가 자바스크립트의 BigInt 에 머리를 탁 치고 간다;;; 함수 안에 함수를 쓸 수 있는 점은 괜찮다만... 자바스크립트 너... 진짜; https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net const readline = require("readline").createInterface({ input: process.stdin, o.. 2022. 8. 14.
[백준 15652/c++] N과 M (4) 백준 백트래킹 4번째 문제 이전에 풀었던 중복 수 가능 + 오름차순 수열 인 문제이다 중복 가능이므로 isused 로 체크할 필요없고 오름차순 수열이어야 하므로 인자로 최저인 수를 전달해서 재귀 반복문에서의 증가할 i로 전달 해주자 https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net #include using namespace std; int n, m; int ar[10]; void bt(int k, int num) { if (k == m) { .. 2022. 8. 3.
[백준 11729/c++] 하노이의 탑 이동 순서 재귀문제의 가장 유명한 하노이의 탑 문제이다 하노이의 탑 문제의 핵심은 가장 아래의 원판부터 하나씩 옮겨서 이동해야 한다는 점이다 1. 그러기 위해서는 원판의 총 개수 n 개에서 가장 아래 하나를 뺀 n-1개를 임시위치에 모두 옮겨야 한다 2. 원래 위치에서 가장 아래에 있는 원판을 목표 위치로 이동시킨다 3. 임시 위치에 쌓인 n-1개의 원판을 목표 위치로 이동시킨다 4. 이걸 원판 수 n만큼 반복한다 즉, 위의 알고리즘을 가진다 이동을 출력으로 보여줘야 하므로 원판수 n외에도 원래위치, 임시위치, 목표위치 를 인자로 갖는 함수를 만든다 void hanoi(int n인자개수, string from원래위치, string to목표위치, string res임시위치){ // 순서는 정하기 나름 hanoi(n-.. 2022. 7. 3.