잡학개발공간
article thumbnail
[백준] 16236. 아기 상어
알고리즘/백준 2023. 10. 26. 09:35

[Gold III] 아기 상어 - 16236 문제 링크 문제 설명 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다. 아기 상어가 어디로 이동할지 결정하는 방법은 아래와 같다. 더..

article thumbnail
[백준] 9205. 맥주 마시면서 걸어가기 (Java)
알고리즘/백준 2023. 10. 25. 14:15

[Gold V] 맥주 마시면서 걸어가기 - 9205 문제 링크 문제 설명 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. 맥주 한 박스에는 맥주가 20개 들어있다. 목이 마르면 안되기 때문에 50미터에 한 병씩 마시려고 한다. 즉, 50미터를 가려면 그 직전에 맥주 한 병을 마셔야 한다. 상근이의 집에서 페스티벌이 열리는 곳은 매우 먼 거리이다. 따라서, 맥주를 더 구매해야 할 수도 있다. 미리 인터넷으로 조사를 해보니 다행히도 맥주를 파는 편의점이 있다. 편의점에 들렸을 때, 빈 병은 버리고 새 맥주 병을 살 수 있다. 하지만, 박스에 들어있는 맥주는 20병을 넘을..

article thumbnail
[백준] 1027. 고층 건물 (Java)
알고리즘/백준 2023. 10. 25. 10:37

[Gold IV] 고층 건물 - 1027 문제 링크 문제 설명 세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작)은 (i,0)부터 (i,높이)의 선분으로 나타낼 수 있다. 고층 빌딩 A에서 다른 고층 빌딩 B가 볼 수 있는 빌딩이 되려면, 두 지붕을 잇는 선분이 A와 B를 제외한 다른 고층 빌딩을 지나거나 접하지 않아야 한다. 가장 많은 고층 빌딩이 보이는 빌딩을 구하고, 거기서 보이는 빌딩의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 빌딩의 수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에 1번 빌딩부터 그 높이가 주어진다. 높이는..

article thumbnail
[백준] 1339. 단어 수학 (Java)
알고리즘/백준 2023. 10. 24. 14:14

[Gold IV] 단어 수학 - 1339 문제 설명 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다. 예를 들어, GCF + ACDEB를 계산한다고 할 때, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7로 결정한다면, 두 수의 합은 99437이 되어서 최대가 될 것이다. N개의 단어가 주어졌을 때, 그 수의 합을 최대로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 단어..

article thumbnail
[Java] 우선순위큐(Priority Queue) 개념 및 예제
알고리즘/개념, 팁 2023. 10. 24. 09:17

우선순위 큐(Priority Queue)란? 우선순위 큐는 큐(Queue)의 한 종류로, 원소들이 우선순위에 따라 정렬되어 있는 자료 구조입니다. 일반적인 큐와는 달리, 우선순위 큐는 데이터를 꺼낼 때 우선순위가 가장 높은 데이터부터 꺼내게 됩니다. 언제 사용하는가? 작은 값이나 큰 값을 빠르게 찾아야 할 때 데이터를 정렬된 상태로 유지하면서 삽입과 삭제가 자주 발생하는 경우 다익스트라(Dijkstra) 알고리즘, 힙 정렬(Heap Sort) 등 알고리즘에 자주 사용됩니다. 자료 구조와 시간 복잡도 자료 구조: 일반적으로 힙(Heap)을 사용합니다. 시간 복잡도: 삽입과 삭제 모두 O(log N)입니다. 주요 메소드 add(E e): 원소 추가 poll(): 가장 우선순위가 높은 원소 삭제 및 반환 pe..

검색 태그