๋ฌธ์
์๊ทผ์ด๋ ์ค๋ฝ์ค์์ ๋ฐ๊ตฌ๋๋ฅผ ์ฎ๊ธฐ๋ ์ค๋๋ ๊ฒ์์ ํ๋ค. ์คํฌ๋ฆฐ์ N์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ์คํฌ๋ฆฐ์ ์๋์ชฝ์๋ M์นธ์ ์ฐจ์งํ๋ ๋ฐ๊ตฌ๋๊ฐ ์๋ค. (M<N) ํ๋ ์ด์ด๋ ๊ฒ์์ ํ๋ ์ค์ ๋ฐ๊ตฌ๋๋ฅผ ์ผ์ชฝ์ด๋ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ ์ ์๋ค. ํ์ง๋ง, ๋ฐ๊ตฌ๋๋ ์คํฌ๋ฆฐ์ ๊ฒฝ๊ณ๋ฅผ ๋์ด๊ฐ๋ฉด ์ ๋๋ค. ๊ฐ์ฅ ์ฒ์์ ๋ฐ๊ตฌ๋๋ ์ผ์ชฝ M์นธ์ ์ฐจ์งํ๊ณ ์๋ค.
์คํฌ๋ฆฐ์ ์์์ ์ฌ๊ณผ ์ฌ๋ฌ ๊ฐ๊ฐ ๋จ์ด์ง๋ค. ๊ฐ ์ฌ๊ณผ๋ N์นธ์ค ํ ์นธ์ ์๋จ์์ ๋จ์ด์ง๊ธฐ ์์ํ๋ฉฐ, ์คํฌ๋ฆฐ์ ๋ฐ๋ฅ์ ๋ฟ์๋๊น์ง ์ง์ ์ผ๋ก ๋จ์ด์ง๋ค. ํ ์ฌ๊ณผ๊ฐ ๋ฐ๋ฅ์ ๋ฟ๋ ์ฆ์, ๋ค๋ฅธ ์ฌ๊ณผ๊ฐ ๋จ์ด์ง๊ธฐ ์์ํ๋ค.
๋ฐ๊ตฌ๋๊ฐ ์ฌ๊ณผ๊ฐ ๋จ์ด์ง๋ ์นธ์ ์ฐจ์งํ๊ณ ์๋ค๋ฉด, ๋ฐ๊ตฌ๋๋ ๊ทธ ์ฌ๊ณผ๊ฐ ๋ฐ๋ฅ์ ๋ฟ์ ๋, ์ฌ๊ณผ๋ฅผ ๋ด์ ์ ์๋ค. ์๊ทผ์ด๋ ์ฌ๊ณผ๋ฅผ ๋ชจ๋ ๋ด์ผ๋ ค๊ณ ํ๋ค. ์ด๋, ๋ฐ๊ตฌ๋์ ์ด๋ ๊ฑฐ๋ฆฌ์ ์ต์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ M < N ≤ 10) ๋์งธ ์ค์ ๋จ์ด์ง๋ ์ฌ๊ณผ์ ๊ฐ์ J๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ J ≤ 20) ๋ค์ J๊ฐ ์ค์๋ ์ฌ๊ณผ๊ฐ ๋จ์ด์ง๋ ์์น๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค.
N : ์คํฌ๋ฆฐ ์นธ M : ๋ฐ๊ตฌ๋๊ฐ ์์นํ ์นธ (์์ ์นธ) J : ์ฌ๊ณผ์ ๊ฐฏ์
์ถ๋ ฅ
๋ชจ๋ ์ฌ๊ณผ๋ฅผ ๋ด๊ธฐ ์ํด์ ๋ฐ๊ตฌ๋๊ฐ ์ด๋ํด์ผ ํ๋ ๊ฑฐ๋ฆฌ์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ
5 1
3
1
5
3
์์ ์ถ๋ ฅ
6
์๊ตฌ ์ฌํญ ๋ถ์
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ฌ๊ณผ๊ฐ ๋จ์ด์ง๋ ๊ฒ์ ์๋ฎฌ๋ ์ด์ ํ๊ณ ๊ทธ์ ๋ฐ๋ผ ๋ฐ๊ตฌ๋๋ฅผ ์์ง์ฌ ์ฌ๊ณผ๋ฅผ ๋ฐ์์ผ ํฉ๋๋ค.
๋ฐ๊ตฌ๋์ ํ์ฌ ์์น๋ฅผ ์ถ์ ํ๊ณ ๊ฐ ์ฌ๊ณผ๋ฅผ ์ก๊ธฐ ์ํด ์ด๋ํด์ผ ํ๋ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ๊ฑฐ๋ฆฌ๋ฅผ ํฉ์ฐํ์ฌ ๋ชจ๋ ์ฌ๊ณผ๋ฅผ ์ก๊ธฐ ์ํด ๋ฐ๊ตฌ๋๊ฐ ์ด๋ํด์ผ ํ๋ ์ด ๊ฑฐ๋ฆฌ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ ๊ทผ ๋ฐฉ๋ฒ
- N, M, J์ ์ ๋ ฅ๊ฐ์ ์ฝ๋๋ค.
- ๋ฐ๊ตฌ๋์ ํ์ฌ ์์น๋ฅผ M์ผ๋ก ์ด๊ธฐํํ๋ค.
- ๊ฐ ์ฌ๊ณผ์ ์์น๋ฅผ ์ฝ๊ณ ๋ ์ ๋จ์ด์ง๊ธฐ ์ ์ ๋จ์ด์ง๋ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค.
- ๋ฐ๊ตฌ๋๊ฐ ๋จ์ด์ง๋ ์ฌ๊ณผ์ ๊ฒฝ๋ก์ ์๋ ๊ฒฝ์ฐ ๋ฐ๊ตฌ๋๊ฐ ์ฌ๊ณผ๋ฅผ ์ก๊ธฐ ์ํด ์ด๋ํด์ผ ํ๋ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค.
- ๋ฐ๊ตฌ๋์ ํ์ฌ ์์น๋ฅผ ์ฌ๊ณผ๊ฐ ๋ ์ ๋ฟ๋ ์์น๋ก ์ ๋ฐ์ดํธ ํ๋ค.
- ๋ชจ๋ ์ฌ๊ณผ๊ฐ ์กํ ๋๊น์ง 3-5๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๋ค.
- ๋ชจ๋ ์ฌ๊ณผ๋ฅผ ์ก๊ธฐ ์ํด ๋ฐ๊ตฌ๋๊ฐ ์ด๋ํ ์ด ๊ฑฐ๋ฆฌ๋ฅผ ์ถ๋ ฅํ๋ค.
๋ฐฐ์ด์ ์ฌ๊ณผ ์์น๋ฅผ ์ ์ฅํ์ฌ ๋ฌธ์ ์ ์ ๊ทผ ๋ฐ๊ตฌ๋์ ๊ฐ๋ฅํ ๊ฐ ์์ ์์น๋ฅผ ๋ฐ๋ณตํ๊ณ , ๊ฐ ์์ ์์น์ ๋ํด ๋ชจ๋ ์ฌ๊ณผ๋ฅผ ์ก๋ ๋ฐ ํ์ํ ์ต์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค.
ํ์ด
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class boj2828 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// ์ฒซ ๋ฒ์งธ ์ค์์ N๊ณผ M์ ์
๋ ฅ๋ฐ์
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
// ๋ ๋ฒ์งธ ์ค์์ J๋ฅผ ์
๋ ฅ๋ฐ์
int J = Integer.parseInt(br.readLine());
int left = 1; // ๋ฐ๊ตฌ๋์ ์ผ์ชฝ ๋ ์์น
int right = M; // ๋ฐ๊ตฌ๋์ ์ค๋ฅธ์ชฝ ๋ ์์น
int cnt = 0; // ์ด๋ ํ์
for (int i = 0; i < J; i++) {
int apple = Integer.parseInt(br.readLine());
// ๋ฐ๊ตฌ๋๋ฅผ ์ผ์ชฝ์ผ๋ก ์ด๋ํด์ผ ํ๋ ๊ฒฝ์ฐ
if (apple < left) {
cnt += left - apple; // ์ด๋ ๊ฑฐ๋ฆฌ๋ฅผ ๋ํจ
left = apple; // ๋ฐ๊ตฌ๋ ์์น ์
๋ฐ์ดํธ
right = left + M - 1; // ๋ฐ๊ตฌ๋ ๋ฒ์ ์
๋ฐ์ดํธ
}
// ๋ฐ๊ตฌ๋๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํด์ผ ํ๋ ๊ฒฝ์ฐ
else if (apple > right) {
cnt += apple - right; // ์ด๋ ๊ฑฐ๋ฆฌ๋ฅผ ๋ํจ
right = apple; // ๋ฐ๊ตฌ๋ ์์น ์
๋ฐ์ดํธ
left = right - M + 1; // ๋ฐ๊ตฌ๋ ๋ฒ์ ์
๋ฐ์ดํธ
}
}
System.out.println(cnt);
}
}
'๐ Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] ์์ธํธ์ค ๋ฌธ์ 0 (JAVA) (0) | 2023.04.11 |
---|---|
[๋ฐฑ์ค] 2178 ๋ฏธ๋ก ํ์(JAVA) (0) | 2023.03.27 |
[๋ฐฑ์ค] 1926 ๊ทธ๋ฆผ(JAVA) (0) | 2023.03.21 |
8958 (0) | 2021.08.18 |
1110 (0) | 2021.08.16 |