[백준] 1043 거짓말
·
개발/알고리즘
접근 방향 설명파티에서 최대한 많이 거짓말 할 수 있도록 문제를 해결하면 되는 문제였다. 문제에서 가장 중요한 점은, 파티가 배열 순서대로 진행되지 않는다는 점이다. 그래서 사람간의 그래프를 그리는 것이 중요했다고 생각했다. 문제풀이 설명 1️⃣ 파티의 순서가 보장되어 있지 않기 때문에 함께 파티에 참여하는 사람간의 간선 정보를 양방향으로 저장해야 했다. 2️⃣ 이후, 탐색을 돌면서 진실을 알고 있는 사람과 함께 파티에 간 사람을 know_Arr에 넣어주었다.(know_Arr == 진실을 아는 사람들의 집합)탐색은 스택을 이용했기에 DFS 로 돌렸다. 여기에선 탐색 순서가 중요하지 않기에 BFS도 크게 상관없을 것이다.   3️⃣ 다시 배열을 돌면서 진실을 아는 사람이 없는 파티라면, ans++를 해주었..
[백준] 1325 효율적인 해킹
·
개발/알고리즘
접근 방향알고리즘 자체는 그리 어렵지 않게 떠올릴 수 있었던 문제였다. [그래프 +  bfs ] 1️⃣ `a`는 `b`를 신뢰하기 때문에, `b`의 바이러스 여부는 `a`를 감염시킨다. 그렇기 때문에, 그래프로서 입력값을 정리해준다. `graph[b].push(a)` 와 같이 정리하는 식으로 말이다.2️⃣ 그다음 `bfs` 나 `dfs`로 탐색을 해주면 된다. 3️⃣ 나의 경우는, 시간 초과를 면하기 위해, `shift` 연산을 사용하는 대신 `idx`를 움직이는 식으로 `bfs` 탐색을 돌았다. 4️⃣ `bfs` 함수의 `return`으로 감염시킨 컴퓨터 수를 던져주었으며, 이를 토대로 최대값을 구해서 `result` 배열에 넣어 출력하는 식으로 답을 구했다. https://www.acmicpc.net..