본문 바로가기

😩

💜 2606 바이러스 JAVA 1. 개요 아주 기본적인 BFS로 풀 수 있는 간단한 문제이다. 이 문제가 잘 안 풀리는 사람은 BaaaaaaaaarkingDog님의 그래프 강의를 보고 오길 바란다. 실버 3도 식은 땀 흘리며 풀었다... 재활운동 시작! 내가 한번 틀렸었는데, 이유는 양방향 그래프임을 생각해주지 않고 풀어서 이다. 이론 정리 다시 해야겠다. 2. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { pu.. 더보기
💔11000 강의실 1. 문제 설명 11000번: 강의실 배정 수강신청의 마스터 김종혜 선생님에게 새로운 과제가 주어졌다. www.acmicpc.net 강의의 시작 시간과 종료 시간이 주어졌을 때 해당 강의들을 전부 소화할 수 있는 최소 강의 수를 구하여라. 2. 푸는 원리 저번에 풀었는데 틀렸다. 틀리는 방법도 똑같았다 ㅜㅜ. 다시 푸는 방법을 정리해 보겠다. 배열 혹은 List에 강의 시작 시간이 빠른 순으로 강의를 정렬한다. 강의의 끝 시간을 기준으로 값들을 정리하는 Priority Queue를 만든다. 자 이제 List에 존재하는 값들을 차례로 순회할 것이다. 우리가 현재 조회하는 강의를 A라고 해보자. A의 강의 시작 시간이 오후 1시라고 할 때, 현재 시각을 오후 1시라고 가정하는 것이다. 이렇게 list에서 현.. 더보기
💚트리 1. 문제 설명 1068번: 트리 트리에서 리프 노드란, 자식의 개수가 0인 노드를 말한다. www.acmicpc.net 트리에서 A번 노드를 없앴을 때 리프 노드의 개수를 구하여라 2.푸는 원리 위의 설명 처럼, 나는 제거되는 중간 노드가 가진 leaf 노드에 -111 이란 가상의 노드를 새로 더해주었고, 그렇게 해서 leaf 노드가 아닌 것으로 만들었다. 그리고 다시 전체 노드에서 자식 노드가 없는 노드의 개수를 세어줘서 리프 노드의 개수를 구했다. 하지만 이 알고리즘에서 예외가 되는 지점이 존재했다. 만약 위의 예시의 노드 2처럼 자신이 가진 모든 leaf 노드가 -111이란 가상의 노드를 가진다면, 실질적으로 2가 가진 모든 자식 노드가 제거 되었다는 소리임으로 2가 leaf 노드가 된다. 따라서.. 더보기