본문 바로가기
300x250

전체 글44

[프로그래밍 지식] 재귀 함수란? 재귀 함수(되부름 함수)란 함수 안에서 함수를 호출하는 방식이다. 1~10까지의 합을 구하는 경우를 생각해보자. for문은 자신이 혼자 1+2+3+4+5+6+7+8+9+10을 더하는 것이다. 반면 재귀함수는 뒤에 애한테 1~9까지의 합을 물어보고 그 값에 10을 더하는 방식을 반복한다. 하지만 이런 단순 계산은 재귀를 통해 호출하는 것보다 이미 알고 있는 계산식에 대입시켜서 푸는 것이 더 빠르다. 예를 들어 피보나치 수열의 경우에도 점화식, d[i]=d[i-1]+d[i-2]를 통하면 획기적으로 빠른 속도로 처리가 가능한데, 이는 재귀에서 중복되는 값을 계속해서 호출하고 계산하기에 발생하는 문제이다. 하지만 재귀함수는 알고리즘에서 80% 이상이 재귀함수를 기반으로 개량하여 만들어져 BOJ 문제 또는 코딩테.. 2023. 11. 24.
[BOJ 1240][c++] 노드사이의 거리 https://www.acmicpc.net/problem/1240 1240번: 노드사이의 거리 첫째 줄에 노드의 개수 $N$과 거리를 알고 싶은 노드 쌍의 개수 $M$이 입력되고 다음 $N-1$개의 줄에 트리 상에 연결된 두 점과 거리를 입력받는다. 그 다음 줄에는 거리를 알고 싶은 $M$개의 노드 쌍 www.acmicpc.net dfs,bfs문제이다. 루트로부터 각 노드까지의 거리를 구하고, 공통 부분을 빼주면 된다. 코드는 아래에 있다. 더보기 #include using namespace std; vector g[1001]; bool c(pair a,pair b){return a.first> n >> m; for(int i=1;i> f >> t >> c; g[f].push_back(make_pair(.. 2023. 8. 3.
[프로그래밍] 비트 연산자 프로그램을 짜다보면 & | ^ ! >> 2023. 7. 6.
[C++][BOJ 11725] 트리의 부모 찾기 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net BFS로 풀 수도 있고, DFS로도 풀 수 있는 문제다. 아직 방문하지 않은 정점인 경우 현재 방문 노드를 아직 방문하지 않은 노드의 부모로 check하고 방문 여부를 true로 바꿔주면 되는 문제다. 주의 사항으로는 c++에서 endl을 사용하는 경우에는 cout과정에서 시간을 오래 잡아먹어 시간초과가 나오므로 \n을 사용해야 한다. 코드는 아래에 있다. dfs 코드 더보기 #include using namespace std; vector graph[1000.. 2023. 5. 23.
[python] n차원 배열 만들기 python은 n차원 배열을 선언하는 것에 있어서 까다로운 편에 속한다. c언어의 경우는 a[][]의 형태로 2차원 배열을 선언 할 수 있지만 python은 이 방식이 불가능하다. 4차원 배열을 예로 들자면 [ [ [ [ ] * ] * ] * ] * 방식을 사용할 경우 특정 범위 값을 바꾸려해도 배열 내의 모든 값이 변하게 된다. 이를 해결 하기 위해서는 배열을 선언할 때 [ [ [ [ for _ in range() ] for _ in range() ] for _ in range() ] for _ in range() ]의 형태로 코드를 작성해야 4차원 배열이 작성이 된다. 2023. 4. 9.
[Python][BOJ 6951] Packet Routing https://www.acmicpc.net/problem/6951 6951번: Packet Routing The date is October 29th, 1969. Today, scientists at UCLA made history by exchanging data between two computers over a network. The transmission wasn't very spectacular: only the first two letters of the word login were received before the system crashed. www.acmicpc.net 엄청 쉬운 Floyd-warshall 문제이다. n개의 정점에 w개의 간선정보을 받고 계산 후 p개의 질문에 대답하면 되.. 2023. 3. 13.
300x250