본문 바로가기

전체 글145

Z #1074 c++ 풀이 https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 처음 든 생각은, 0,1,2,3 중에 영역을 계속 찾아들어가야하는 것 까지 생각을 했었다. 그런데 문제는 누적수를 어떻게 구하느냐 였다 #include using namespace std; int n, r, c; int ans; void Z(int y, int x, int size) { if (y == r && x == c) { cout = x) { // 1사분면 탐색 Z(y, x, si.. 2023. 10. 23.
BFS, DFS c++ - DFS란, 그래프 전체를 탐색하는 하나의 방법으로써, 하나의 가지(branch)를 모두 탐색한 이후에 다음 branch로 이동하는 방법이다. - 시작 노드에서 깊이가 커지는 방향으로 탐색을 진행하여 더 이상 방문할 인접 노드가 없는 경우 이전 노드로 돌아가서, 다시 깊이우선 탐색을 반복 - 시작점부터 다음 branch로 넘어가기 전에 해당 branch를 완벽하게 탐색하고 넘어가는 방법 stack 또는 recursive(재귀 함수)로 구현. 1. 탐색 시작 노드를 스택에 삽입하고 방문처리 2. 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문처리 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다. 3. 2번의 과정을 수행할 수 없을 때까지 반복.. 2023. 10. 23.
피보나치 함수 #1003 c++ 풀이 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 0.25 초 (추가 시간 없음) 를 보고, 수업시간에 피보나치 수열계산을 재귀로 풀게 되면 시간이 오래걸린다고 했던 것이 기억에 남는다. 최소한 반복문이나 dp로 풀어야겠다고 생각을 했다. dp란 dp란 메모이제이션을 이용하여, 하나의 문제는 한번만 풀도록 구현하는 방법이다. dp로 피보나치를 구현하는 방법은 다음과 같다. using namespace std; long long fiboarr[100] = {0,1,}; long long fibo(int N) { if(N == 0 || N == .. 2023. 10. 23.
solved.ac #18110 c++ 풀이 https://www.acmicpc.net/problem/18110 18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다. www.acmicpc.net 집중력이 떨어질수록, 조건을 빼먹을 확률이 높아지는 것 같습니다. 의견이 없으면 0이라는 조건이 함정이었습니다. 문제 정답입니다. 전체의 위아래에 15프로의 round 값을 더한것부터 순회해서 15프로round를 뺀값까지의 평균을 구하는 문제입니다. #include #include #include #include using namespace std; vector lis.. 2023. 10. 13.