분류 전체보기
백준 1992 쿼드트리 c++ // 재귀함수, 재귀시작-끝에 괄호추가하는방법
https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 1. 괄호추가하는방법 재귀식 앞뒤로 (, )를 추가하면된다!!!! //시작할때 괄호열어 ret += "("; go(half, y, x); go(half, y, x+half); go(half, y+half, x); go(half, y+half, x+half); //종료할때 괄호닫어 ret += ")"; 2. 내 코드 #include using namespace std; int n, a[..
백준 2630 색종이 만들기 c++ // 재귀함수 , 일반식만들기
https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 1. 내 코드 #include using namespace std; int n,ret1,ret2, a[150][150]; //시작좌표~끝좌표(시작좌표+n)까지 돌면서 모두같은지 검사 bool all_same(int n, int y, int x) { int first = a[y][x]; for (int i = y; i < y + n; ++i) { for (int j = x..
백준 1780 종이의 개수 c++ // 재귀함수, 일반식도출
https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 1. 내 정답코드 #include using namespace std; int n,ret1,ret2,ret3, a[2200][2200]; //시작좌표~끝좌표(시작좌표+n)까지 돌면서 모두같은지 검사 bool all_same(int n, int y, int x) { int first = a[y][x]; for (int i = y; i < y + n; ++i) { for (int j = x..
백준 17478 재귀함수가 뭔가요? c++ // 재귀함수 callback은 재귀호출뒤에쓰면된다.
https://www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net #include using namespace std; int n; void print(const char* str, int stk) { for (int i = 0; i < stk; ++i) { cout
백준 1629 곱셈 c++ // 재귀함수
https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 1. 최대한 예시에서 일반식을 도출하라. ex) a^4%c = a^2%c * a^2 %c -> a^b%c = a^b%c * a^b %c ex) a^5%c = a^2%c * a^2 %c * a^1 %c -> a^b%c = a^b%c * a^b %c * a^1 %c 2. (공통부분을) 먼저계산 후 리턴하면된다. #include using namespace std; int a, b, c; using ll = long long; //함수정의 : a^b를 c로나눈 나머지..
백준 1074 Z C++ // 재귀
https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 1. 왜 재귀로 푸나? 새로운 값을 구할때 이전의 값을 활용한다. 2. 함수정의 3. 기저사례 4. 재귀식 #include using namespace std; //2^n * 2^n 배열에서 , (r,c) 방문순서 반환 int func(int n, int r, int c) { //기저사례 : 1x1 칸의 번호는 0이다. if (n == 0) return 0; int half = 1 = h..
프로그래머스 하노이의 탑 c++ // 재귀함수
https://school.programmers.co.kr/learn/courses/30/lessons/12946# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 특징 : n==1일때만 answer에 푸쉬함. 나머지는 추상적으로 정의함. 기둥번호 : 1, 2, 3번 기둥번호 : a번, 6-a-b번, b번 할일(재귀식) : 1. a에서 6-a-b기둥으로 n-1개옮기기 2. a에서 b로 1개 옮기기 3.6-a-b에서 b로 n-1개 옮기기 n==1일때만 base condition처리. 임의(k개)일때는 재귀적으로 처리후 도미노가 쓰러지듯 알아서 처리된다. #i..
프로그래머스 섬 연결하기 c++ // 크러스칼 알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 특이한 부분 재귀함수 //부모노드찾기 int get_parent(int node){ if(parent[node]==node) return node; return parent[node]=get_parent(parent[node]); } 2. 합집합 //같은집합으로 만드는함수 void union_parent(int node1, int node2){ int p1=get_parent(node1); ..