2025/03 2

자바 - 백준 2109/ 순회강연

https://www.acmicpc.net/problem/2109골드3구현 방법하루에 최대 한 강연 + 강연마다 마감일과 강연료가 있음 + 최대 수익이 목표→ 작업 스케줄링 문제⇒ 그리디 알고리즘p 값(강연료)가 높은 순, p값이 같은 경우 d값(마감일)이 작은 순으로 정렬하면 답을 구할 수 있습니다.마감일이 같은 경우, 마감일에 가장 가까우면서 일정을 잡을 수 있는 일자로 선정합니다.visited 배열을 이용하여 가능한 일자를 구합니다.날짜 찾기 최적화기존 방식에서는 visited 배열을 이용해 각 날짜마다 강연이 배정되었는지 확인하고, 빈 날짜를 찾기 위해 매번 O(n)의 선형 탐색을 수행했습니다.이를 개선하기 위해 유니온 파인드의 find() 함수를 이용하기로 했습니다.parent[날짜] = 그 날..

알고리즘 2025.03.07

자바 - 백준 2533 / 사회망 서비스(SNS)

https://www.acmicpc.net/problem/2533골드3구현 방법문제 조건에서 “친구 관계가 트리 구조”라고 했기 때문에 사이클이 없고, 모든 노드가 연결되어 있습니다.따라서 DFS나 재귀를 통해 트리 순회가 가능해집니다.상태는 2가지로 나뉩니다.얼리어답터인 경우 : 자신의 친구는 얼리어답터가 아니여도 됩니다.얼리어답터가 아닌 경우 : 자신의 친구는 무조건 얼리어답터가 되어야 합니다.상태를 보면 각 노드는 하위 서브 트리의 최적해에 의존한다는 것을 알수 있습니다.따라서 DP를 이용하기로 했습니다.결론트리 순회를 하면서 각 노드의 두 가지 상태에 대해 이미 계산된 최적해(최소 얼리 어답터 수)를 저장해두고, 이를 다시 활용함으로써 중복 계산을 피해 최소 얼리어답터인의 수를 구하도록 하겠습니다..

알고리즘 2025.03.07