본문 바로가기

자바4

[백준] 콘센트 - Java 23843 https://www.acmicpc.net/problem/23843  콘센트의 차징 시간을 내림차순으로 정렬하는 것이 키 포인트인 문제이다. 내림차순으로 정렬한 뒤 시간을 1씩 늘려가며 `sumpq.peek()`의 값이 `time`보다 작거나 같으면`sumpq`에서 해당 값을 빼주고 내림차순으로 정렬된 `pq`에서 값을 뽑아time을 더해 새롭게 `sumpq`에 더한다.    import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.PriorityQueue;import java.util.StringTokenizer;public class BOJ23843 { publi.. 2024. 10. 24.
[백준] 닭싸움 팀 정하기 - Java 1765 https://www.acmicpc.net/problem/1765  유니온 파인드를 사용하지 않고 친구의 친구도 반복문을 돌았을 때는 시간초과가 발생했다. 그래서, 원수의 원수의 경우에만 친구로 설정하고 친구의 경우는 유니온 파인드를 적용하여친구를 구별하기로 했고 그렇게 했을 때는 시간 초과가 발생하지 않았다. 전역 클래스에 `equals`와 `hashCode` 메소드를 직접 작성했는데 다른 분들의 코드를 보면굳이 이렇게 까지 작성하지 않아도 되는 거 같긴하다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class BOJ1765 { sta.. 2024. 10. 24.
[백준] 트럭 - Java 13335 https://www.acmicpc.net/problem/13335  큐의 크기를 다리에 들어갈 수 있는 차의 개수로 설정하여,지속적으로 개수와 크기를 비교하며 큐에 트럭을 더한다. 만약, 트럭이 다리를 건널 수 없으면 큐와 `path`에 0을 추가하여 횟수를 카운팅한다.그리고 마지막에는 큐에 남아있는 값을 확인하여 남이있는 값이 있다면 다리의 길이만큼 더해준다. 하지만, 다리가 1인 경우 결국 전체 횟수는 N + 1만큼 걸리므로 바로 반환해준다.(엣지케이스) import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { public.. 2024. 10. 24.
[백준] 달빛 여우 - 16118 Java 백준의 달빛 여우 문제를 풀어보았다.(Java) 친구의 소개로 풀어본 문제인데 오랜만에 PS를 풀어 관련 개념공부도 같이하였다. 구현에 사용한 알고리즘 또는 자료구조로는 Dijkstra, Graph, 우선순위 큐를 사용했다. 맨 처음에는 Java에서 보통 입력 속도를 줄이기 위해 사용하는 BufferedReader와 그냥 받은 입력을 String 배열에 담는 작업을 했는데 시간초과가 발생했다. 그래서, StringTokenizer를 사용했더니 통과했다. 작성한 코드는 아래와 같다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; // 달빛 여우, 달빛 .. 2024. 2. 13.