백준 9466 번 - 텀프로젝트(C++/DFS/Graph)
문제 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 수도 있다. 프로젝트 팀을 구성하기 위해, 모든 학생들은 프로젝트를 함께하고 싶은 학생을 선택해야 한다. (단, 단 한 명만 선택할 수 있다.) 혼자 하고 싶어하는 학생은 자기 자신을 선택하는 것도 가능하다. 학생들이(s1, s2, ..., sr)이라 할 때, r=1이고 s1이 s1을 선택하는 경우나, s1이 s2를 선택하고, s2가 s3를 선택하고,..., sr-1이 sr을 선택하고, sr이 s1을 선택하는 경우에만 한 팀이 될 수 있다. 예를 들어, 한 반에 7명의 학생이 있다고 하자. 학생들을 1번부터 7번으..
백준 10451 번 - 순열 사이클 (C++/BFS/DFS/그래프)
문제 접근법 문제만 이해하면 접근법은 쉽다. 처음에 3,2,7,8,1,4,5,6 만 입력을 받고 그래프로 어떻게 표현하지를 생각하는데 시간이 오래걸렸다. 예시를 잘 보면 위쪽은 배열의 Index, 아래쪽은 입력한 수 이므로, adjacants[from][to] 라고 가정했을때 (adjacants는 그래프간의 연결을 나타냄), from = 배열의 Index to = 입력받은 수 를 넣어주면 된다 그 이후는 BFS코드를 그대로 사용한다. visited를 만들어서 q에 시작위치 하나를 먼저 저장한후, q.front(),q.push()를 반복하며 순회해준다. 사이클 수는 간단하다. 밑에서 BFS를 호출할때 for문에 넣어줘서 if(visited[i]==false) 일 때 순회하는데 만약 visited[1]이 f..
알고리즘 공부 (알고리즘 개인정리 링크 첨부) 선형자료~동적계획법까지!
오랜만의 포스팅이다 ㅎㅎ. 요즘 github에 README나 notion에서만 정리하고 있다가 블로그의 존재를 까먹었다. 하여튼! 요즘 많은 공부를 하고있지만 가장 많이하는 것은 아무래도 알고리즘 및 DirectX11 일 것이다. 여기부턴 알고리즘을 포스팅한다. 백준을 포함해 여러 기초들을. 아래 링크는 내가 알고리즘 강의를 들으며 정리한 것들을 모아둔 것이다. 최대한 보기 좋게 정리하려 했지만 필력이 모자라다 ;-;... 아래 링크를 들어가면 선형자료 (동적배열, 연결리스트, 스택, 큐 등) 그래프 (DFS, BFS, 다익스트라) 트리 (이진 탐색트리, 레드-블랙트리, 힙트리, 우선순위 큐, A*) 정렬 (버블정렬, 선택정렬, 삽입정렬, 힙정렬, 퀵정렬, 병합정렬) 해시테이블 최소신장트리 (크루스칼, ..