๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/30803)
< ์๋๊ผญ์ง >
๋ฌธ์ ํ์ด
์๋๊ผญ์ง๊ฐ ์ ๊ฒผ์ ๋์ ์ด๋ ธ์ ๋๋ฅผ ๊ตฌ๋ถํ์ฌ ํฑํฌ์ ๋ด๊ธฐ๋ ๋ฌผ์ ์์ ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class _30803_ { // ์๋๊ผญ์ง
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int N = Integer.parseInt(bf.readLine());
int arr[] = new int[N + 1];
boolean visited[] = new boolean[N + 1];
long answer = 0;
st = new StringTokenizer(bf.readLine());
for (int i = 1; i < N + 1; i++) {
arr[i] = Integer.parseInt(st.nextToken());
answer += arr[i];
}
bw.write(answer + "\n");
int Q = Integer.parseInt(bf.readLine());
for (int i = 0; i < Q; i++) {
st = new StringTokenizer(bf.readLine());
int num = Integer.parseInt(st.nextToken());
if (num == 1) {
int temp = Integer.parseInt(st.nextToken());
int x = Integer.parseInt(st.nextToken());
if (visited[temp]) {
arr[temp] = x;
} else {
answer -= arr[temp];
arr[temp] = x;
answer += arr[temp];
}
} else {
int x = Integer.parseInt(st.nextToken());
if (!visited[x]) {
visited[x] = true;
answer -= arr[x];
} else {
visited[x] = false;
answer += arr[x];
}
}
bw.write(answer + "\n");
}
bw.flush();
}
}
๋ณ์)
N : ์๋๊ผญ์ง์ ์
arr : ์๋๊ผญ์ง์์ ๋์ค๋ ๋ฌผ์ ์
visited : ์๋๊ผญ์ง ์ด๋ ธ๋์ง ์ฌ๋ถ
answer : 1๋ถ ๋์ ํฑํฌ์ ๋ด๊ธฐ๋ ๋ฌผ์ ์
Q : ์กฐ์์ ์
num : ์กฐ์ ๋ฒํธ
์๋๊ผญ์ง์ ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์๋๊ผญ์ง์ ์๋งํผ ์๋๊ผญ์ง์์ ๋์ค๋ ๋ฌผ์ ์์ ์ ๋ ฅ๋ฐ์ arr์ ์ ์ฅํ๋ค. ์กฐ์์ ์ Q๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์กฐ์์ ์๋งํผ ์กฐ์์ ์ ๋ ฅ๋ฐ์ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ์กฐ์ ๋ฒํธ๊ฐ 1์ด๋ผ๋ฉด ์๋๊ผญ์ง ๋ฒํธ temp์ ๋ฌผ์ ์ x๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋ง์ฝ temp๋ฒ ์๋๊ผญ์ง๊ฐ ์ ๊ฒจ์๋ค๋ฉด ๋ฌผ์ ์๋ง ๋ฐ๊พธ๊ณ , ์ด๋ ค์๋ค๋ฉด answer์ ์๋ ๋ฌผ์ ์์ ๋นผ์ฃผ๊ณ x๋ฅผ ๋ํ๋ค.
2) ์กฐ์ ๋ฒํธ๊ฐ 2๋ผ๋ฉด ์๋๊ผญ์ง ๋ฒํธ x๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋ง์ฝ x๋ฒ ์๋๊ผญ์ง๊ฐ ์ด๋ ค์๋ค๋ฉด ์ ๊ทธ๊ณ answer์ ๊ทธ ๊ฐ์ ๋นผ์ค๋ค. ๋ง์ฝ ์ ๊ฒจ์๋ค๋ฉด ์ด๊ณ answer์ ๊ทธ ๊ฐ์ ๋ํ๋ค.
3) answer์ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 9518_๋ก๋ง ์นดํจ๋ฆญ ๋ฏธ์ฌ (0) | 2024.07.11 |
---|---|
[Baekjoon] 5637_๊ฐ์ฅ ๊ธด ๋จ์ด (0) | 2024.07.10 |
[Baekjoon] 1980_ํ๋ฒ๊ฑฐ ์ฌ๋ (0) | 2024.07.08 |
[Baekjoon] 4821_ํ์ด์ง ์ธ๊ธฐ (1) | 2024.07.05 |
[Baekjoon] 1996_์ง๋ขฐ ์ฐพ๊ธฐ (0) | 2024.07.04 |