반응형 알고리즘211 [알고리즘] c++ cpp 숨바꼭질 시리즈 (숨바꼭질1) 포인트 1. BFS (너비 우선 탐색) 2. 기본적인 것들은 똑같고 조건들만 다름을 이해하자 #include #include using namespace std; #define MAX 100001 bool visited[MAX]; int n, m; int bfs() { queue q; int time = 0; q.push(n); while (1) { int size = q.size(); for (int i = 0; i 0 && !visited[n - 1]) { //범위체크 && 방문하지 않았거나 q.push(n - 1); visited.. 2020. 10. 4. [알고리즘] c++ cpp H-Index 포인트 1. 시테이션을 구하는 방법 2. 정렬 사용후 사이즈 비교를 하여 H-Index 를 결정해준다, #include #include #include using namespace std; int solution(vector citations) { int answer = 0; sort(citations.begin(), citations.end()); //정렬 for (int i = 0; i < citations.size(); i++) { if (citations.size() - i 2020. 9. 26. [알고리즘] c++ cpp N개의 최소공배수 포인트 1. 최대 공약수 gcd, 최소 공배수 lcm gcd = return b ? euclidean(b, a % b) : a; lcm = a*b / gcd 2. #include c++17 lcm, gcd 지원 #include #include #include using namespace std; int solution(vector arr) { sort(arr.begin(), arr.end(), greater()); int answer = arr[0]; int size = arr.size(); for (int i = 1; i < size; i++) answer = lcm(answer, arr[i]); return answer; } 2020. 9. 23. [알고리즘] c++ cpp 최솟값 만들기 포인트 1. 곱의 합이 최소가 되려면 제일 작은 것과 제일 큰것을 곱해야 한다. #include #include #include using namespace std; int solution(vector A, vector B) { sort(A.begin(), A.end()); sort(B.begin(), B.end(), greater()); int a = 0; for (int i = 0; i < A.size(); i++) { a+=A[i]*B[i]; } return a; } 2020. 9. 23. 이전 1 ··· 47 48 49 50 51 52 53 다음 반응형