12869번 - 뮤탈리스크(bfs)
문제: 풀이:scv의 체력이 주어져 있고, 뮤탈의 공격 방식도 정해져있다.그렇다면, 모든 scv의 체력이 다 닳을때까지 뮤탈이 여러 방식으로 공격해보면 될 것이다.자, 가능한 모든 경우의 수로 한대씩 때려보자.위와 같은 결과가 나올 것이다.만약 그 다음에도 한번씩 때려보면 6 x 6의 경우의 수가 나올 것이고, scv가 모두 죽는 경우의 수에 도달할 것이다.위 그림을 보면, bfs를 사용하고 있다는 것을 알아볼 수 있을 것이다.중복이 일어나지 않도록 visited 배열을 만들어 코드를 작성하면 쉽게 풀 수 있을 것이다. 뮤탈의 공격 순번을 미리 저장해 놓는다.bfs를 위한 visited 배열은 3차원 배열로 저장해 놓을 것이다.int[][] attack = {{9, 3, 1}, {9, 1, 3}, ..
2024. 8. 27.
2616번 - 소형기관차(dp)
문제: 풀이:각 소형 기관차가 끌 수 있는 객차 수를 3칸이라고 하자.객차의 수는 12개로 각 객차에 타있는 손님 수는 35, 40, 50, 10, 30, 45, 60, 20, 10, 50, 40, 70 이다.그렇다면 아래와 같은 전제를 도출할 수 있을 것이다.각 소형 기관차가 끌 수 있는 최대 인원은 연속되는 객차 3개의 인원의 합이다.고로 1~3번째 객차, 2~4번째 객차....10~12번째 객차만 고려하면 된다.두 소형 기관차가 끌 수 있는 최대 인원은 객차 6개의 인원의 합이다.고로 1~6번째 객차, 2~7번째 객차....7~12번째 객차만 고려하면 된다. 모든 소형 기관차가 끌 수 있는 최대 인원은 객차 9개의 합이다.고로 1~9번째 객차, 2~10번째 객차....4~12번째 객차만 고려하면 된..
2024. 8. 19.