[C++] floor / ceil 함수 사용하기
2020. 5. 16. 15:23
카테고리 없음
1. floor / ceil 함수란? (1) floor 함수 이는 'floor'가 가진 말 그대로, 1.3은 1로, 1.6도 1로, 1.9도 1로 '내려주는' 함수이다. (2) ceil 함수 이는 'ceil'가 가진 말 그대로, 1.3은 2로, 1.6도 2로, 1.9도 2로 '올려주는' 함수이다. 2. C++에서 floor / ceil 함수 사용하기 #include int a = ceil(4.2); int b = ceil(4.3); int c = floor(1.6);
[알고리즘] C++로 N-Queen 문제풀기 (Back-Tracking 알고리즘)
2020. 5. 12. 22:01
Programming/알고리즘
1. N-Queen 문제란? N-Queen 문제란 다음과 같이 (N * N) 체스판이 있을 때, N개의 퀸을 체스판에 놓을 수 있는 경우를 찾는 문제이다. 이 문제는 백트래킹(Back-Tracking) 알고리즘을 적용하는 전형적인 문제이다. 2. Back-Tracking 이란? 말 그대로 가능하지 않는 노드는 배제하고 뒤로 돌아가는 형태이다. 어떤 노드에 방문했을 때, 그 노드가 '유망한' 노드가 아니라면 그 전 상태로 돌아가는 것이다. 3. 풀이 코드 #include using namespace std; int n, cnt = 0; bool cols[15], incs[29], decs[28]; void nQueen(int r) { if (r > n) { cnt++; return; } for (int i..
[백준/9370번] 미확인 도착지
2020. 4. 19. 18:23
Programming/백준 문제풀이
1. 참고 https://www.acmicpc.net/problem/9370 9370번: 미확인 도착지 문제 (취익)B100 요원, 요란한 옷차림을 한 서커스 예술가 한 쌍이 한 도시의 거리들을 이동하고 있다. 너의 임무는 그들이 어디로 가고 있는지 알아내는 것이다. 우리가 알아낸 것은 그들이 s지점에서 출발했다는 것, 그리고 목적지 후보들 중 하나가 그들의 목적지라는 것이다. 그들이 급한 상황이기 때문에 목적지까지 우회하지 않고 최단거리로 갈 것이라 확신한다. 이상이다. (취익) 어휴! (요란한 옷차림을 했을지도 모를) 듀오가 어디에도 보이지 않는다. 다 www.acmicpc.net 2. 접근 방법 & 문제 풀이 문제의 입&출력을 이해하는 데에도 시간이 걸리는 문제이므로 정독하길 바란다. 간단하게 이 ..
[C++/STL] 다차원 Vector 복사하기
2020. 4. 16. 21:28
Programming/C│C++
1. 다차원 벡터 복사하기 3차원까지는 모르겠다만, 2차원 벡터는 다음과 같이 간단하게 복사할 수 있다. vector graph; graph.assign(5, vector(5, 1)); // 위의 벡터를 복사하려면... vector newGraph; newGraph.assign(graph.size(), vector(graph.size()); copy(graph.begin(), graph.end(), newGraph.begin());
[C++] C++로 eof 처리하기 (cin.eof() 사용법)
2019. 12. 7. 21:00
Programming/C│C++
C언어에서 scanf를 통해서 eof를 처리할 수 있듯이, C++에서도 입력받은 것이 eof인지 처리할 수 있다. int num; cin >> num; if (cin.eof() == true) { // Do something. }
[알고리즘] C++로 벨만-포드 알고리즘 구현하기
2019. 12. 5. 19:21
Programming/알고리즘
1. 벨만-포드 알고리즘이란? 그래프에서 최단 경로를 찾는 알고리즘은 여러 개가 있기 때문에, 알고리즘이 필요할 때에는 각 상황에 맞는 적절한 최단경로 알고리즘을 선택해야한다. 널리 사용되는 최단경로 알고리즘으로는 다익스트라 알고리즘, 벨만-포드 알고리즘, 플로이드-와샬 알고리즘이 있다. 특히, 다익스트라 알고리즘과 벨만-포드 알고리즘은 굉장히 많이 쓰이기 때문에, 다음과 같이 비교하면 좋다. 벨만-포드 알고리즘은 간선 간의 가중치가 음수일 때 사용한다. 다익스트라 알고리즘은 양수 가중치만 가능하다. 다익스트라 알고리즘은 정점을 기준으로 최단 경로는 찾고, 벨만-포드 알고리즘은 간선을 기준으로 찾는다. 2. 벨만-포드 알고리즘의 조건 벨만-포드 알고리즘을 적용하기 위한 조건은 다음과 같다. 최단 경로는 ..