전체 글 795

백준 19621번 회의실 배정 2 (JAVA)

https://www.acmicpc.net/problem/19621 19621번: 회의실 배정 2 서준이는 아빠로부터 N개의 회의와 하나의 회의실을 선물로 받았다. 각 회의는 시작 시간, 끝나는 시간, 회의 인원이 주어지고 한 회의실에서 동시에 두 개 이상의 회의가 진행될 수 없다. 단, www.acmicpc.net 저는 DP를 이용해 문제를 풀었습니다. DP를 통해 이전에 계산한 것을 다시 계산하지 않도록 하여 문제를 풀었습니다. package BOJ.dp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class BOJ_19621_2 { private static class Meeti..

알고리즘 2023.12.31

백준 1890번 점프 (JAVA)

https://www.acmicpc.net/problem/1890 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net 저는 DP를 이용하여 문제를 풀었습니다. DP를 이용해 이전에 계산한 것을 다시 계산하지 않도록하여 제한시간안에 풀었습니다. package BOJ.dp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BOJ_1890 { public s..

알고리즘 2023.12.30

백준 1309번 동물원 (JAVA)

https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 저는 DP를 이용해 풀었습니다. DP를 통해 이전에 계산한 것을 다시 계산하지 않도록하여 문제를 풀었습니다. package BOJ.dp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class BOJ_1309 { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputSt..

알고리즘 2023.12.29

백준 2169번 로봇 조종하기 (JAVA)

https://www.acmicpc.net/problem/2169 2169번: 로봇 조종하기 첫째 줄에 N, M(1≤N, M≤1,000)이 주어진다. 다음 N개의 줄에는 M개의 수로 배열이 주어진다. 배열의 각 수는 절댓값이 100을 넘지 않는 정수이다. 이 값은 그 지역의 가치를 나타낸다. www.acmicpc.net 저는 DP를 통해 문제를 해결하였습니다. DP를 통해 이전에 계산한 값을 다시 계산하지 않도록하여 시간안에 동작하도록 하였습니다. package BOJ.dp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; impor..

알고리즘 2023.12.28

백준 10773번 제로 (JAVA)

https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 저는 스택을 통해 문제를 풀었습니다. 스택으로 이전의 값을 저장하고, 0이라면 꺼내고, 다른 숫자면 stack에 넣고 마지막에 stack에 있는 모든 값의 합을 출력하여 풀었습니다. package BOJ.etc; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Sta..

알고리즘 2023.12.27

백준 15810번 풍선 공장 (JAVA)

https://www.acmicpc.net/problem/15810 15810번: 풍선 공장 1, 2, 3번 스태프가 각각 5분, 7분, 3분씩 걸린다면 3분이 지났을 때 3번 스태프가 1개, 5분에 1번 스태프가 1개, 6분에 3번 스태프가 1개를, 7분에 2번 스태프가 1개를, 9분에 3번 스태프가 1개를, 10분에 www.acmicpc.net 저는 이분탐색을 통해 문제를 풀었습니다 이분탐색을 사용하지 않으면 각 시간대 별로 되는지를 확인해야하기 때문에 1_000_000 * 1_000_000으로 시간초과가 나올 수 있습니다.그래서 이분탐색을 통해 해당 시간까지 m개를 만들 수 있는지를 확인하여 만들 수 있다면 end를 줄이고, 없다면 start를 늘려 문제를 풀었습니다. package BOJ.bina..

알고리즘 2023.12.26

백준 9465번 스티커 (JAVA)

https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 저는 DP를 이용해 문제를 풀었습니다. DP를 통해 이전에 계산했던 것을 다시 계산하지 않도록 하여 문제를 풀었습니다. package BOJ.dp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BOJ_9465 { public stat..

알고리즘 2023.12.25

백준 2776번 암기왕 (JAVA)

https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 저는 구현과 이분탐색 2가지 방법으로 풀었습니다. 구현으로는 Set을 통해 노트1에 있는 숫자를 저장하고, 노트2의 숫자가 노트1에 있는지를 확인하였고, 이분탐색으로는 노트1의 배열을 정렬하고, 이분탐색으로 해당 값이 존재하는지를 확인하여 문제를 풀었습니다. package BOJ.etc; import java.io.BufferedReader; import java.io.InputStreamReader;..

알고리즘 2023.12.24

백준 3187번 양치기 꿍 (JAVA)

https://www.acmicpc.net/problem/3187 3187번: 양치기 꿍 입력의 첫 번째 줄에는 각각 영역의 세로와 가로의 길이를 나타내는 두 개의 정수 R, C (3 ≤ R, C ≤ 250)가 주어진다. 다음 각 R줄에는 C개의 문자가 주어지며 이들은 위에서 설명한 기호들이다. www.acmicpc.net 저는 BFS를 통해 문제를 풀었습니다. 양이나 늑대라면 BFS를 통해 울타리 안에 양과 늑대가 몇마리 있는지 파악하고, 늑대가 더 많거나 같다면 양의 개수를 없애고, 아니라면 늑대의 개수를 없애 이들의 합을 구하여 문제를 해결하였습니다. package BOJ.etc; import java.io.BufferedReader; import java.io.InputStreamReader; i..

알고리즘 2023.12.23

백준 21756번 지우개 (JAVA)

https://www.acmicpc.net/problem/21756 21756번: 지우개 $N$은 1, 2, 4, 8, 16, 32, 64 중 하나이다. 즉, $N$은 1이거나, 2이거나, 2를 여러 번 곱한 수 중 하나이다. www.acmicpc.net 저는 구현을 통해 문제를 해결하였습니다. package BOJ.simulation; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class BOJ_21756 { private static final int EMPTY = -1; public static void main(String[] args) throws Exception ..

알고리즘 2023.12.22