728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.
728x90
메모리: 92,296 KB, 시간: 412 ms
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Solution { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; StringBuilder sb = new StringBuilder(); int T = Integer.parseInt(br.readLine()); for (int tc = 1; tc <= T; tc++) { st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st.nextToken()); int p = Integer.parseInt(st.nextToken()); st = new StringTokenizer(br.readLine()); int[] days = new int[n]; for (int i = 0; i < n; i++) days[i] = Integer.parseInt(st.nextToken()); int ans = 0; for (int i = 0; i < n ; i++) { // i := 시작일의 인덱스 int s = i, e = n - 1; while(s <= e) { int mid = (s + e) / 2; // 가능성이 있는 날의 인덱스 int blank = (days[mid] - days[i] + 1) - (mid - i + 1); if(blank > p) e = mid - 1; else { ans = Math.max(ans, (days[mid] - days[i] + 1) + (p - blank)); s = mid + 1; } } } sb.append("#" + tc + " " + ans + "\n"); } System.out.println(sb); } }
728x90
'Problem Solving > SWEA' 카테고리의 다른 글
[SW Expert Academy, SWEA 1232] 사칙연산 (java) (0) | 2024.01.16 |
---|---|
[SW Expert Academy, SWEA 11446] 사탕 가방 (java) (0) | 2023.07.09 |
[SW Expert Academy, SWEA 9843] 촛불 이벤트 (java) (1) | 2023.06.15 |
[SW Expert Academy, SWEA 13736] 사탕 분배 (java) (0) | 2023.05.06 |
[SW Expert Academy, SWEA 7701] 염라대왕의 이름 정렬 (java) (0) | 2023.05.06 |