분류 전체보기 (157) 썸네일형 리스트형 #11724 연결요소의 개수 문제는 다음과 같다. (실버2) '연결요소' 가 뭔지만 알면 어렵지 않은 문제였다. 그냥 dfs,bfs돌려서 한번 다 돌았으면 개수를 한개 추가해주면 되는거였다. #include #include #include #include using namespace std; vector a(1001,vector(1001,0)); int N,M,V; int check[1001]; queue q; void reset(){ for(int i=0;i>n2; a[n1][n2]=1; a[n2][n1]=1; } reset(); for(int i = 1; i #2606 바이러스 문제는 다음과 같다. 누가봐도 dfs,bfs를 사용하는 문제였다. 너무 대놓고 쓰세요~ 이래가지고 쉽게 풀 수 있을줄 알았다. 아이디어도 바로 떠오르기도했고.. 결론적으로 크게 어렵지는 않은데 배운건 꽤 있어서 기분이 좋았다. 소스코드는 다음과 같다. 입력대로 컴퓨터간의 간선을 com이라는 vector에 넣어주고, dfs를 돌려서 연결된 컴퓨터가 있을때마다 cnt값을 1씩 증가 시켰다. 결국 답은 cnt를 출력하면 된다. -배운 것 1. 2차원 벡터사용에는 크게 두가지가 있다. -vector com[101]; 이 경우는 위의 코드와 같이 push_back()함수를 써서 값을 대입해야한다. 내가 원하는 만큼 자리가 할당되어있는게 아 니기 때문에 바로 com[x][i]와 같이 인덱스를 통해 접근할 수 없었다.. DFS & BFS 1. 그래프 -그래프는 자료구조의 일종으로 정점(Vertex)과 간선(Edge)로 이루어져있다. 1.1 그래프의 표현 -그래프는 크게 두가지 방법으로 저장한다. -인접행렬 (adjacency matrix) : 정점의 개수가 V개인 그래프에서 V x V 크기의 2차원 배열을 사용하여, A[i][j]=1 이 면 간선이 있다고 표시한다. + 방향이 있는 간선에서는 정점 1과 2가 연결되어있을때, A[1][2]와 A[2][1] 둘 중 하나에만 1을 대입 하지만, 방향이 없다면 A[1][2] = 1; A[2][1] = 1; 으로 해줘야 한다. ++ 가중치가 있는 문제라면 1대신 가중치를 대입한다. +++ 한 정점과 연결된 모든 간선을 찾는 시간은 O(V)로 표현된다. -인접 리스트(adjacency list) :.. C++ pair클래스 2022.03.26 pair(배 색깔) -pair는 "utility"라는 헤더파일에 있으므로, 사용시 #include 를 잊으면 안된다. 1.선언 -pair 변수이름; ex) pair p; 2. 사용 -make_pair() 함수를 사용한다. ex) p=make_pair(10,20); -> p라는 변수안에 10과 20이 같이 들어가있음. -이때, 각 원소에 접근하기를 원하면 first와 second를 사용한다. ex) int n1=p.first; int n2=p.second; 3. 특징 -헤더파일 algorithm의 sort()함수로 정렬이 가능하다! (first인자를 먼저 기준으로 삼고, 값이 같으면 second를 참조한다) -vector, queue, stack 등과 같은 자료구조들과 함께 사용이 가능.. 환영합니다! #1 글을 작성하고 블로그를 관리해보세요. 코딩잘하고싶은대학생님의 회원 가입을 진심으로 축하합니다. 이 글은 비공개로 작성돼 있습니다. '편집'으로 내용을 바꾸시거나, 삭제 후 '새 글을 작성'하셔도 됩니다. 글 뿐만 아니라 블로그의 각종 설정을 변경할 수도 있습니다. '블로그관리'를 확인해보세요. #2 다양한 스킨이 있어요. 티스토리에 있는 다양한 '스킨'도 살펴 보세요. 블로그나 사이트를 사용하는 목적에 맞게 스킨을 고를 수 있습니다. 어떤 이야기를 주로 하실 건가요? 잘 생각해 보시고, 마음에 드는 스킨을 고르세요. '스킨 편집'을 통해 다양한 커스텀, 그리고 홈 꾸미기를 적용하실 수도 있답니다. #3 포럼에서 사람들과 소통하세요. 마지막으로 사용하시다가 티스토리에 대해 궁금한 내용이 있다면 '포럼.. 이전 1 ··· 17 18 19 20 다음