본문 바로가기

BOJ75

[BOJ]16943번: 숫자 재배치 문제: https://www.acmicpc.net/problem/16943 재배치할 숫자는 최대 9개이므로 완전 탐색으로 해결할 수 있는 문제입니다. A로 생성할 수 있는 모든 숫자를 생성한 뒤에 B보다 작은지 확인하면서 최댓값으로 갱신해주면 됩니다. 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ16943.cc 2020. 5. 31.
[BOJ]17213번: 과일 서리 문제: https://www.acmicpc.net/problem/17213 재귀를 통해 맨 앞 과일종류부터 0개부터 ~ 최대치까지 뽑을 수 있게 작성하면 해결할 수 있습니다. solution(int idx, int rest) idx: 현재 뽑아야 할 과일 종류 rest: 남은 뽑아야 할 과일 갯수 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ17213.cc 2020. 5. 31.
[BOJ]16118번: 달빛 여우 문제: https://www.acmicpc.net/problem/16118 다익스트라 응용문제입니다. 달빛 여우는 무난히 다익스트라를 구하면 되겠지만, 문제가 되는 것은 달빛 늑대의 경우입니다. 늑대가 하나의 그루터기(노드)에 도착하는 방법은 1. 빠른 속도로 도착하거나 / 2. 느린 속도로 도착하거나 이렇게 두 가지 방법 중 하나로 도착하게 됩니다. 그러니 늑대의 경우는 빠르고 / 느리게 움직이는 경우를 모두 dist 배열로 저장해줘야합니다. 중요한 건, 우선순위큐에 넣을 자료형과 늑대의 dist를 어떻게 정의할까의 문제입니다. 1. 우선순위큐에 넣을 자료형: tuple(long long, int ,int) 튜플의 의미: 현재 노드까지 오는데 걸린 거리 + 다음 탐색 때 늑대의 속도 tuple[0]: .. 2020. 5. 29.
[BOJ]11085번: 군사 이동 문제: https://www.acmicpc.net/problem/11085 스패닝 트리문제입니다. 크루스칼로 해결할 수 있습니다. 두 정점을 연결하는 간선들 중 최소비용이 최대가 되게 하려면 가장 큰 간선부터 PQ에서 뽑아 그래프를 연결합니다. 그리고 두 정점이 연결되는지 계속 체크합니다. 특정 간선이 뽑히고 두 정점이 처음으로 연결된다면 그 간선이 최소비용이 최대가 되게 하는 정답입니다. 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ11085.cc 2020. 5. 29.