Algorithm Problems/기타 (13) 썸네일형 리스트형 [백준/C++] 11729번 하노이 탑 이동 순서 문제https://www.acmicpc.net/problem/11729문제 요약3개의 장대가 있고, 첫 번째 장대에 반경이 서로 다른 n개의 원판이 큰 순서대로 쌓여 있다. 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮겨야 한다. 1. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다.2. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 작업을 수행하는 데 필요한 이동 횟수와 순서를 출력한다.코드#include #include #include using namespace std;int n;// {a, b} : a번째 탑의 가장 위 원판을 b번째 탑의 가장 위로 이동vector> res;// a번째 탑에서 cnt - 1개 원판을 b번째 탑으로 이동시켜두고, c번째 탑으로 옮기기v.. [백준/C++] 1780번: 종이의 개수 문제https://www.acmicpc.net/problem/1780문제 요약N × N 크기의 행렬로 표현되는 종이의 각 칸에 -1, 0, 1 중 하나가 적혀 있다. 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 1. 만약 종이가 모두 같은 수로 되어 있다면, 이 종이를 그대로 사용한다.2. 그렇지 않다면, 종이를 같은 크기의 종이 9개로 자르고, 각각 잘린 종이에 대해 (1) 과정을 반복한다. -1, 0, 1 로만 채워진 종이의 개수를 출력한다.코드#include using namespace std;int n;int board[2200][2200];int minus_cnt;int zero_cnt;int one_cnt;void divi(int x, int y, int cnt) { int .. [백준/C++] 17478번: 재귀함수가 뭔가요? 문제https://www.acmicpc.net/problem/17478문제 요약평소에 교수님은 재귀 함수가 무엇인지에 대한 많은 질문을 받아왔다. 재귀함수가 무엇인지 물어보는 학생들을 위해 자동 응답 챗봇을 만들었다. 재귀 횟수 N이 주어질 때, 챗봇의 응답 결과를 출력한다. 코드#include using namespace std;int n;void dfs(int cnt) { // 마지막 대답 출력 후 종료 if (cnt == n) { for (int i = 0; i > n; // 첫 문장 cout 코드 설명재귀 함수를 이용하여 문제를 해결한다.고찰오타가 있는지 꼼꼼히 살펴야 한다. [백준/C++] 1074번: Z 문제https://www.acmicpc.net/problem/1074문제 요약2^N × 2^N 크기의 2차원 배열을 Z모양으로 탐색하려고 한다. N > 1인 경우, 배열을 크기가 2^(N-1) × 2^(N-1)로 4등분 한 후에 재귀적으로 탐색한다. N이 주어졌을 때, r행 c열을 몇 번째로 방문하는지 출력한다. 코드#include #include using namespace std;int N, r, c;int cnt;int res;void fillCount(int n, int x, int y) { if (x == r && y == c) { res = cnt; return; } else if (x > N >> r >> c; fillCount(pow(2, N.. [백준/C++] 2447번: 별찍기 - 10 문제https://www.acmicpc.net/problem/2447문제 요약예제를 보고 유추하여 별을 출력한다. ex) n = 27일 때,**************************** ** ** ** ** ** ** ** ** ******************************* ****** ****** **** * * ** * * ** * * **** ****** ****** ******************************* ** ** ** ** ** ** ** ** ************************************* ********** ** ** * * ** ** ********** *****.. [백준/C++] 28135번: Since 1973 문제https://www.acmicpc.net/problem/28135문제 요약n이 주어졌을 때, 1부터 차례대로 수를 셀 때, 몇 번째 수를 셀 때 N이 처음으로 등장하는지 출력한다.코드#include #include using namespace std;int n, cnt;int main() { cin >> n; for (int i = 0; i 코드 설명1부터 하나씩 숫자를 세고, find 함수를 사용해서 문자열 "i"에 "50"이 들어있는지 확인한다.고찰find 함수를 사용하여 문자열 a에 문자열 b가 들어있는지 확인할 수 있다. 만약 문자열 a에 문자열 b가 들어있지 않다면, std::string::npos를 반환한다. 이전 1 2 3 다음