๐ ๋ฌธ์
๐ ์์ด๋์ด
๐ ํ์ด
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int size = Integer.parseInt(st.nextToken());
int removeCount = Integer.parseInt(st.nextToken());
int[] oddNumSum = new int[size + 1];
st = new StringTokenizer(br.readLine());
int left = 0; //์ผ์ชฝ ํฌ์ธํฐ
int maxLen = 0; //์ง์ ์์ด์ค ๊ฐ์ฅ ๊ธด ๊ธธ์ด
for (int i = 1; i <= size; i++) { //ํ์ฌ ํ์ธํ๋ ๋ฒ์๋ left ~ i ๊น์ง (i ๊ฐ right ์ธ๋ฑ์ค์ ์ญํ ์ ํ๋ค)
oddNumSum[i] = oddNumSum[i - 1];
if (Integer.parseInt(st.nextToken()) % 2 == 1) {
oddNumSum[i]++; //ํ์์ธ ๊ฒฝ์ฐ ์ฒดํฌํ๋ค(์ญ์ ๋์)
}
while (oddNumSum[i] - oddNumSum[left] > removeCount) {
//ํ์ฌ ๊ฐ๋ฅํ ์ญ์ ๋ฒ์์ ๊ฐ์๋ณด๋ค ํฌ๋ฉด ์ผ์ชฝ์ธ๋ฑ์ค๋ฅผ ์์ง์ธ๋ค.
left++;
}
maxLen = Math.max(maxLen, i - left - (oddNumSum[i] - oddNumSum[left]));
// ๊ฐ์ ๊ฐฑ์ ํ๋ค. ํ์ฌ๊น์ง์ ๋ฒ์ - ์ ๊ฑฐ ๊ฐ๋ฅํ ํ์์ ๊ฐ์
}
System.out.println(maxLen);
}
}
'๋ฐฑ์ค(boj)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA]1063 ํน, ๊ตฌํ, ์ค๋ฒ3 (0) | 2023.05.31 |
---|---|
[JAVA]17143 ๋์์ (1) | 2023.05.29 |
[JAVA]2758 ๋ก๋(dfs ์๊ฐ์ด๊ณผ/ dp) (0) | 2023.05.28 |
[๋ฐฑ์ค Java] 4963 ์ฌ์ ๊ฐ์ (0) | 2023.05.26 |
[JAVA]1092 ๋ฐฐ ( ์ด๋ถ ํ์ ) (0) | 2023.05.23 |