응애개발자
article thumbnail
[Java] 백준 2292번 : 벌집
코딩테스트/백준 2024. 5. 2. 11:38

문제https://www.acmicpc.net/problem/2292 접근 방법1. 벌집은 N 까지 갈때 최단 거리를 구하는 문제입니다.2. 따라서 1, (2~7), (8~19), (20~37) 의 최단거리는 각각 1, 2, 3, 4로 계차수열을 이룹니다.3. 증가하는 값이 6, 12, 18 로 6씩 증가하는 코드를 작성해주면 됩니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; private static ..

article thumbnail
[Java] 백준 14476번 : 최대공약수 하나 빼기
코딩테스트/백준 2024. 4. 29. 17:40

문제https://www.acmicpc.net/problem/14476 접근 방법1. left 배열은 i번째 자리에 arr[1] ~ arr[i] 까지 최대 공약수를 넣어줍니다.2. right 배열은 i 번째 자리에 arr[i+1] ~ arr[i] 까지 최대 공약수를 넣어줍니다.3. 따라서 어떤 수 i를 뺀 나머지에서 최대공약수를 구한다면 left[i-1]과 right[i+1]의 최대공약수를 구해주면 됩니다.4. 그렇게 구한 최대공약수로 i를 나누려 할때 나누어지면 안되고, 제일 큰 최대공약수를 저장해야 됩니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.Str..

article thumbnail
[Java] 백준 2231번 : 분해합
코딩테스트/백준 2024. 4. 29. 13:51

문제https://www.acmicpc.net/problem/2231접근 방법1. N이 100일때 이 분해합은 86(86+8+6) 이 됩니다. 2. 결국 분해합을 구하려면 N보다 작은 수들로 이루어져 있는데 각 자리가 최대 9까지 나올수 있으므로 총 자리수 * 9 작은 값부터 N까지 완탐방식으로 구하면 됩니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { private static BufferedReader br; private static StringBuilder sb; private static int N; private static int nLength; //..

article thumbnail
[Java] 백준 2164번 : 카드2
코딩테스트/백준 2024. 4. 29. 11:53

문제https://www.acmicpc.net/problem/2164 접근 방법1. Queue를 활용하여 1~N 까지 카드를 넣어줍니다.2. 카드에서 한장을 버리고, 남은 카드가 한장이라면 그것이 답이고, 2장 이상이라면 앞에있는 카드를 뒤로 옮겨줍니다.3. 만약 N이 한장일 경우 Queue는 무한루프에 빠지게 되므로 N==1일때 예외 처리를 해줍니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Main { private static BufferedRead..

article thumbnail
[Java] 백준 2108번 : 통계학
코딩테스트/백준 2024. 4. 29. 11:24

문제https://www.acmicpc.net/problem/2108 접근 방법1. 산술평균, 중앙값, 최빈값(같으면 2번째  작은값), 범위를 구하면 되는 문제이다.2. 카운팅 정렬을 만들고 풀어줍니다.3. 최빈값은 flag를 만들어 만약 뒤에 나온 값이 앞에 나온 최빈값이랑 같으면 변경해주고, flag를 다시 false로 바꾸면서 풀었습니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static Buffere..

article thumbnail
[Java] 백준 1978번 : 소수 찾기
코딩테스트/백준 2024. 4. 26. 22:37

문제 1978번: 소수 찾기첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.www.acmicpc.net 접근 방법1. 소수 찾기 문제, 소수 구하기 문제 다 에라토스테네스의 체 를 통해서 미리 소수를 구해놓고 찾아주는 방식으로 풀었습니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; priv..

article thumbnail
[Java] 백준 1966번 : 프린터 큐
코딩테스트/백준 2024. 4. 26. 21:31

문제 1966번: 프린터 큐여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에www.acmicpc.net 접근 방법1. 문제에서 나온 방식 그대로 구현하는 문제이다.2. 하지만 queue로 했을때는 인덱스를 알지 못하므로 LinkedList를 사용하였습니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Main { pri..

article thumbnail
[Java] 백준 1929번 : 소수 구하기
코딩테스트/백준 2024. 4. 25. 17:36

문제 1929번: 소수 구하기첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.www.acmicpc.net 접근 방법1. 소수를 미리 구해두기 위해서 에라토스테네스의 체를 이용하여 미리 소수를 찾아놓습니다.2. 범위를 탐색하며 소수가 있으면 해당하는 인덱스를 출력해줍니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; priva..

article thumbnail
[Java] 백준 1920번 : 수 찾기
코딩테스트/백준 2024. 4. 25. 17:09

문제 1920번: 수 찾기첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들www.acmicpc.net 접근 방법1. 완전탐색으로 풀려다 보니 100,000^2 시간 초과가 발생할것 입니다. 그래서 투포인터로 풀었습니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static String..

article thumbnail
[Java] 백준 3964번 : 팩토리얼과 거듭제곱
코딩테스트/백준 2024. 4. 22. 12:48

문제 3964번: 팩토리얼과 거듭제곱 첫째 줄에 테스트 케이스의 개수 T가 주어진다. (1 ≤ T ≤ 100) 다음 T개의 줄에는 n과 k가 공백으로 구분되어 주어진다. (2 ≤ n ≤ 1018, 2 ≤ k ≤ 1012) www.acmicpc.net 접근 방법 1. 먼저 k의 거듭제곱은 어떤 소수로 이루어져있는지 구하기 위해 최대 10^12의 제곱근인 10^6까지 소수를 구합니다. 2. 소수를 구해놓고 k를 돌며 어떤소수와 몇 제곱으로 이루어져 있는지를 map에 집어넣습니다. ex) k가 10이면 (2,1), (5,1)이 map에 존재합니다. 3. map에서 하나씩 꺼내어 n!에서 소수로 나누고, 지수로 한번더 나누어줍니다. 그중 최소값이 정답입니다. 더보기 ex) n이 10 !, k가 40이라면 k =..