๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/2891)
< ์นด์ฝ๊ณผ ๊ฐํ >
๋ฌธ์ ํ์ด
์นด์ฝ์ ํ๋ ๋ ๊ฐ์ ธ์จ ํ์ ์นด์ฝ์ด ์์๋์๋์ง ํ์ ํ ์์๋์๋ค๋ฉด ์์ ์ ํ์ ์ฌ๋ถ์ ์นด์ฝ์ ์ฌ์ฉํ๋ค.
๊ทธ ์ดํ์ ์นด์ฝ์ด ์์๋ ํ์ ๋ฐ๋ก ์ , ๋ค์ ํ์ ์์๋๋ก ์ฌ๋ถ์ ์นด์ฝ์ด ์๋์ง ํ์ธํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class _2891_ { // ์นด์ฝ๊ณผ ๊ฐํ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int s = Integer.parseInt(st.nextToken());
int r = Integer.parseInt(st.nextToken());
boolean damage[] = new boolean[n + 1];
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < s; i++) {
damage[Integer.parseInt(st.nextToken())] = true;
}
boolean[] check = new boolean[n + 1];
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < r; i++) {
int num = Integer.parseInt(st.nextToken());
if (damage[num]) {
damage[num] = false;
} else {
check[num] = true;
}
}
int cnt = 0;
for (int i = 1; i <= n; i++) {
if (damage[i]) {
if (check[i - 1]) {
check[i - 1] = false;
damage[i] = false;
} else if (i<n && check[i + 1]) {
check[i + 1] = false;
damage[i] = false;
} else {
cnt += 1;
}
}
}
System.out.println(cnt);
}
}
๋ณ์)
n, s, r : ํ์ ์, ์นด์ฝ์ด ์์๋ ํ์ ์, ์นด์ฝ์ ํ๋ ๋ ๊ฐ์ ธ์จ ํ์ ์
damage : ์นด์ฝ์ด ์์๋ ํ ์ฌ๋ถ
check : ์นด์ฝ์ ํ๋ ๋ ๊ฐ์ ธ์จ ํ์ ์ฌ๋ถ
num : ์นด์ฝ์ ํ๋ ๋ ๊ฐ์ ธ์จ ํ
cnt : ์ถ๋ฐ์ ํ ์ ์๋ ํ ์
ํ์ ์, ์นด์ฝ์ด ์์๋ ํ์ ์, ์นด์ฝ์ ํ๋ ๋ ๊ฐ์ ธ์จ ํ์ ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์นด์ฝ์ด ์์๋ ํ์ ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ์์ ์ฌ๋ถ๋ฅผ true๋ก ์ ์ฅํ๋ค. ์นด์ฝ์ ํ๋ ๋ ๊ฐ์ ธ์จ ํ์ ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ๋จผ์ ์์ ์ ํ์ ์นด์ฝ์ด ์์๋์๋์ง ํ์ธํ๋ค. ์์๋์๋ค๋ฉด ์์ ์ ํ์ด ์ฌ๋ถ ์นด์ฝ์ ์ฌ์ฉํด์ผ ํ๋ฏ๋ก ์์ ์ฌ๋ถ๋ฅผ false๋ก ์ ์ฅํ๋ค. ์์ ์ ํ์ ์นด์ฝ์ด ์์๋์ง ์์๋ค๋ฉด ์ฌ๋ถ ์ฌ๋ถ๋ฅผ true๋ก ์ ์ฅํ๋ค.
์ฒซ ๋ฒ์งธ ํ๋ถํฐ ์์ ์ฌ๋ถ๋ฅผ ํ์ํ๋ค. ๋ง์ฝ ์นด์ฝ์ด ์์๋ ํ์ด๋ผ๋ฉด ์์ ์ ์ ํ์ด ์ฌ๋ถ์ ์นด์ฝ์ด ์๋์ง ํ์ธํ๋ค. ์ ํ์ด ์ฌ๋ถ์ ์นด์ฝ์ด ์๋ค๋ฉด ๋ค์ ํ์ ํ์ธํ๋ค. ๋ง์ฝ ์ ๊ณผ ๋ค์ ๋ ๋ค ์ฌ๋ถ์ ์นด์ฝ์ด ์๋ค๋ฉด ์ถ๋ฐ์ ํ ์ ์์ผ๋ฏ๋ก cnt๋ฅผ ์ฆ๊ฐ์ํจ๋ค.
์ต์ข ์ถ๋ฐ์ ํ ์ ์๋ ํ์ ์ต์๊ฐ์ธ cnt๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 9324_์ง์ง ๋ฉ์์ง (0) | 2024.05.28 |
---|---|
[Baekjoon] 11504_๋๋ ค ๋๋ ค ๋๋ฆผํ! (0) | 2024.05.27 |
[Baekjoon] 1544_์ฌ์ดํด ๋จ์ด (0) | 2024.05.23 |
[Baekjoon] 3568_iSharp (0) | 2024.05.22 |
[Baekjoon] 2942_ํผ๊ฑฐ์จ๊ณผ ์ฌ๊ณผ (0) | 2024.05.20 |