응애개발자
article thumbnail
[Java] 백준 15961번 : 회전 초밥
코딩테스트/백준 2024. 5. 28. 19:32

문제https://www.acmicpc.net/problem/15961 접근 방법초밥 접시의 수가 3,000,000개이고 종류가 최대 3000개라서 슬라이드에 대해 for문을 돌면 시간초과가 발생한다.따라서 포인터를 이용한 슬라이딩 윈도우를 사용하였다. 또한 카운트 배열을 만들어 같은 숫자가 1개일때만 count값이 올라가도록 하였다.코드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..

article thumbnail
[Java] 백준 22945번 : 팀 빌딩
코딩테스트/백준 2024. 5. 27. 22:24

문제https://www.acmicpc.net/problem/22945 접근 방법시작점과 끝 지점에 s , e 포인터를 두고 능력치가 누가 더 작은지 확인한다.(곱하는 값이 최대)arr[s]가 더 작다면 e를 줄여봤자 min값은 arr[s] 가 될 것이다.코드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 StringTokenizer st; private static int N; ..

article thumbnail
[Java] 백준 1806번 : 부분합
코딩테스트/백준 2024. 5. 27. 18:13

문제https://www.acmicpc.net/problem/1806 접근 방법N개의 수열에서 부분합 중 합이 S가 되는것을 구하는 문제이다.완탐으로 푼다면 10만 *10만 시간초과가 발생할 것이다.따라서 투포인터로 풀 수 있었다.코드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 StringTokenizer st; private static int N,S; private st..

article thumbnail
[Java] 백준 15831번 : 준표의 조약돌
코딩테스트/백준 2024. 5. 27. 17:36

문제https://www.acmicpc.net/problem/15831 접근 방법준표는 까만색을 싫어하고 , 흰색 돌은 좋아한다. 최대가 B까지 정해져있고, 최소 W만큼 조약돌을 주어야 한다.브루트포스로 가능하지만 N값이 30만으로 O(N^2) 시간초과가 발생한다.따라서 투포인터를 생각하였고, 포인터를 넘어가며 B 조약돌이 최대를 넘으면 최대경계선 까지 포인터를 옮겨주어야 한다.(코드를 보는것이 이해가 더 빠를 것이다.) 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; pri..