본문 바로가기

백준 문풀31

백준 2295 세 수의 합 #include#include#includeusing namespace std;int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; vectorarr(n,0); for (int i = 0; i > arr[i]; } sort(arr.begin(), arr.end()); int max; int x, y, z; for (int m = n - 1; m >= 0; m--) { max = arr[m]; for (int j = m; j >= 0; j--) { y = arr[j]; for (int i = j; i >= 0; i--) { x = arr[i]; z = max - x - y; if (z  숫자를 n 개 입력받아 ar.. 2024. 9. 30.
백준 2110 공유기 설치 공유기 설치  이분 탐색을 이용하여야 한다는 생각을 가지고도 어떻게 문제에 접근해야할지 감이 오지 않아서 블로그 글들을 조금 참고하여 코드를 짰다!... 1. 맨 처음 집에는 무조건 공유기가 설치된다.2. 왼쪽에서 오른쪽 방향으로 공유기가 설치된다. 3. 공유기의 설치 가능한 최소 거리는 1이다. 이 세가지를 중심으로 코드를 짰다.int wifi(int start, int end) { int result = 0;//가장 긴 거리 중 최솟값 while (start = mid) { cnt++; prev_house = house[i]; } } if (cnt >= w) { result = mid; start= mid+1; } //거리를 크게해서 조금 설치 가능; if (cnt re.. 2024. 9. 30.
Bfs Dfs c++으로 깊이 우선 탐색을 구현하는 방법과 너비 우선 탐색을 구현하는 방법이 어려워서 정리를 해본다.. DFS는 깊이 우선 탐색으로 재귀함수나 스택으로 구현한다. 1. 탐색 노드를 스택에 삽입하고 방문 리스트에 표시.2. 스택 최상단 노드에 인접한 노드중 방문하지 않은 노드가 존재한다면 그 노드를 스택에 넣고 방문한다.   인접노드를 모두 방문했다면 최상단 노드를 꺼낸다.3. 2번 과정을 계속 반복한다. ** 방문 리스트로 검사를 꼭 해줘야 무한 반복에 빠지지 않는다!!** 스택은 후입선출의 구조이므로 늦게 들어간 노드가 최상단 노드가 됨을 기억하자!===============================================================================Bfs는 너비.. 2024. 9. 23.
백준 1654 랜선 자르기 c언어 문풀랜선 자르기 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다.이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선을 모두 N개의 같은 길이의 랜선으로 만들고 싶었기 때문에 K개의 랜선을 잘라서 만들어야 한다!이때 만들 수 있는 최대 랜선의 길이를 구하는 프로그램을 작성하시오.  랜선의 개수가 10000 까지고 길이는 1000000이므로 반복문으로 풀면 시간초과에 걸려 이진 탐색을 해주어야 한다.이진 탐색 함수를 따로 만들어 주었다. 입력을 받으면서 제일 긴 전선의 길이를 따로 저장해주었다.이진 탐색 함수에서 파라미터를 (1,최대 전선길이)로 주어 zero division 에러가 나지 않도록 해주었다.mid값.. 2024. 9. 8.