본문 바로가기
반응형

C++153

[알고리즘] c++ cpp 가장 긴 증가하는 부분 수열 2 포인트 1. 이분 탐색을 사용하여 시간 복잡도 O(nlogn) 으로 만들어준다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. #include #include #include using namespace std; int main() { int n, temp, cnt = 0; vector vc; // vc.push_back(-987654321); //음수 값을 넣어준다. cin >> n; for (int i = 0; i > temp; if(vc.empty()) { vc.push_back (temp); cnt+=1; continue; } if (temp > vc.back()) { vc.push_back(temp); cnt+=1; } else { auto it = lo.. 2020. 10. 28.
[알고리즘] c++ cpp 단지번호붙이기 포인트 1. bfs 에서 각 영역에 대하여 번호를 붙이는 방법을 보여준다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. #include #include #include #include #include using namespace std; int dx[] = {1, -1, 0, 0}; int dy[] = {0, 0, 1, -1}; int n; int map[26][26]; bool visited[26][26]; vector vc; void bfs(int a, int b) { queue q; q.push({a, b}); visited[a][b] = 1; int count = 1; while (!q.empty()) { int x, y; tie(x, y) = q.front(); q.pop(); fo.. 2020. 10. 28.
[알고리즘] c++ cpp 방의 개수 포인트 1. map 을 사용하여 방문상태와 연결 상태를 확인한다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. #include #include using namespace std; int dx[8]={ -1, -1, 0, 1, 1, 1, 0, -1 }; int dy[8]={ 0, 1, 1, 1, 0, -1, -1, -1 }; struct Point { int x, y; }; int solution (vector arrows) { int room=0; map visited; map connected; Point point={ 0,0 }; visited[{point.x, point.y}]=1; for (int i=0; i < arrows.size (); i++) { // point.x자의 교차 .. 2020. 10. 24.
[알고리즘] c++ cpp 부분수열의 합 포인트 1. 부분 수열의 합을 구하는 방법? (조합적인 방법, 비트마스크 방법) 2. 이번에는 비트마스크로 푸는 방법을 알아보자 비트마스크로 푸는 이유는 조금더 빠르고 간단한게 풀기 위해서 이다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. 비트 마스크로 구하는 방법 #include #include using namespace std; vector a; int main () { int n, m; cin >> n >> m; a.resize (n); for (int i=0; i > a[i]; } int answer=0; for (int i=1; i > map[.. 2020. 10. 23.
반응형