전체 글 58

백준 9466번

BFS문제라는데 BFS로 푼 거 같지가 않다...굳이 따지자면 지나온 점들을 체크하는 게 BFS랑 겹치는 부분이다 방문하지 않은 점들의 다음 점들을 확인해가면서, 다음점이 방문했던 점인 경우 2가지로 나눠 문제를 해결할 수 있다. 첫 번째는 다음 점(nx)이 이전 지나온 점들과 같은 경우 Cycle의 일부가 완성되므로 Cycle에 도달하기 전까지의 점들은 팀을 이룰 수 없는 것이라 그 전까지의 점의 개수를 더해준다. 두 번째로는 다음 점이 이전 지나온 점들과 다르면서 기존에 방문했던 점의 경우인데, 이 경우 지나온 점들 모두가 Cycle에 포함될 수가 없으니 팀을 이룰 수 없어서 지나온 점들을 모두 더해준다. vis를 -1로 초기화시키고 진행하므로 vis에 각 점들이 1번씩만 찍혀서 O(N)으로 문제를 ..

백준/BFS 2022.02.13

백준 21944번

recommend, recommend3에서 lower bound를 적절히 이용해야돼서 set을 사용하였다. 근데 set 1개만으론 안될 것 같아서 g를 1순위로 sorting하는 glp, l을 1순위로 sorting하는 lp인 set 2개를 만들었다. 그리고 문제 번호는 유일하기 때문에 문제 번호를 key로, 난이도와 그룹번호 쌍을 value로 하는 map mp를 만들어서 p 1개에 대해 l와 g값을 바로 알 수 있도록 만들었다.