본문 바로가기

BOJ23

[BOJ] [JAVA] 11003번 최소값 찾기 11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net 슬라이딩 원도우를 이용하여 풀려고 했으나 내가 계속 시도했던 방식은 최소값이 빠져나가면 다시 큐의 최소값을 찾는 방식이었기 때문에 시간 초과가 되었다. 큐에 배열을 넣고 푸는 방식으로 다시 풀었다. 며칠 전에 배웠던 모노 스택 개념과 유사하다고 느꼈다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import j.. 2024. 2. 10.
[BOJ] [JAVA] 1167번 트리의 지름 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 트리의 지름을 구하는 방식이 재밌다. 임의의 한 노드에서 가장 멀리 떨어진 노드를 찾는다. 찾은 노드에서 가장 멀리 떨어진 노드를 찾으면 이 두 노드 사이의 거리가 트리의 지름이 된다. 트리라고 해서 부모와 자식 관계를 자꾸 떠올려서 이상한 방향으로 계속 생각했는데 트리도 결국 그래프이므로 인접한 노드를 방문한다는 아이디어를 가지고 가야 했다. import java.io.BufferedReader; import java.io.IOException.. 2024. 2. 7.
[BOJ] [JAVA] 14442번 벽 부수고 이동하기 2 BFS를 공부하고 관련 문제를 풀었다. 그 중 하나를 적어보기로 했다. 14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net import java.io.*; import java.util.*; // Hammer 클래스는 (x, y) 좌표에 위치한 사람이다. // 사람은 h 개의 해머를 가지고 있고 // 현재 좌표에 distance 만큼의 거리를 이동하여 도달해있다. class Hammer { int x; int y; int h; int di; public Hammer(int x, .. 2024. 1. 27.
[BOJ] [JAVA] 1012번 유기농 배추 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net BFS를 이용해서 해결했다. BFS의 개념 자체는 어렵지 않은데, 코드를 깔끔히 구현하는 방법을 모르겠다. 내가 생각한대로 코드를 작성해봤다. 좌표값을 Queue에 집어넣어야하는데, 방법을 모르고 qX, qY로 x, y 좌표를 각각 받았다. Point라는 걸로 받으면 된다더라,, 그리고 나는 현재 depth에서 확인해야 할 노드의 개수를 그 전 depth에서 계산하고, 다음 depth에게 알려주는 방식으로 했는데 정석이 어떤지는 확인해봐야겠다! package BOJ; imp.. 2024. 1. 20.