본문 바로가기

분류 전체보기365

[Java] baekjoon_11286 : 절댓값 힙 자료 구조, 우선순위 큐 절댓값 힙 : Silver1 https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net PriorityQueue 보통 PriorityQueue는 오름차순으로 정렬되는데, 만약 두 요소의 절댓값이 같다면, 우리는 원래 값의 차이에 따라 우선순위를 결정하고 싶습니다. 예를 들어, 절댓값이 같은 두 정수가 1과 -1이라고 가정해보자. 이 경우, a - b를 계산하면 1 - (-1) = 2이 된다. 이는 두 요소의 .. 2024. 2. 16.
[Java] baekjoon_1541 : 잃어버린 괄호 수학, 그리디 알고리즘, 문자열, 파싱 잃어버린 괄호 : Silver2 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net ** 최소값을 구하려면 - 부호가 붙은 수가 커야 한다. 1. 입력받은 문자열을 - 부호를 기준으로 토큰으로 나눈다. 2. 분리한 토큰에서 + 부호를 기준으로 분리해서 합산한다. 3. 첫번째 값에서부터 합산한 값들을 차례대로 빼면 된다. 4. 첫번째 수에 0이 올수 있기 때문에 sum의 초기값은 0이 아니어야 한다. 풀이.. 2024. 2. 13.
[Java] baekjoon_11279 : 최대 힙 자료 구조, 우선순위 큐 최대 힙 : Silver2 https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); private static BufferedWriter b.. 2024. 2. 12.
[Java] baekjoon_14940 : 쉬운 최단거리 그래프 이론, 그래프 탐색, 너비 우선 탐색 쉬운 최단거리 : Silver1 https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 이 문제는 주어진 지도에서 각 지점에서 목표 지점까지의 최단 거리를 구하는 문제이다. 지도는 가로와 세로로만 움직일 수 있다. 지도의 크기는 n × m이며, 입력에는 갈 수 없는 땅(0), 갈 수 있는 땅(1), 목표 지점(2)이 주어진다. 목표 지점은 단 한 곳이며, 이동할 .. 2024. 2. 11.
[Java] baekjoon_11724 : 연결 요소의 개수 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 연결 요소의 개수 : Silver2 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어 www.acmicpc.net DFS(Depth-First Search) 알고리즘을 사용하여 방향 없는 그래프의 연결 요소(Connected Component) 개수를 찾도록 했다. 풀이 import java.io.*; import java.util.*; public.. 2024. 2. 10.
[Java] baekjoon_1931 : 회의실 배정 그리디 알고리즘, 정렬 회의실 배정 : Silver1 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 이 문제는 그리디 알고리즘을 사용하여 문제를 해결할 수 있다. 그리디 알고리즘은 각 단계에서 지금 당장 가장 좋은 선택을 하는 방법으로 문제를 해결하는 알고리즘이다. 회의실 배정 문제에서는 회의가 끝나는 시간을 기준으로 정렬하여 가장 빨리 끝나는 회의부터 차례대로 배정하여 최대로 회의를 배정하는 것이 최적의 해결 방법이다. 첫 번째 코드 작성 import java.io.*; import java.util.*; public class Main { private .. 2024. 2. 10.