image.png

문제 해결 key_point

문제 해결 아이디어

  1. 사전에 학습했던 비트 마스크 활용 사용
  2. 더한 값과 xor한 값을 저장할 변수 정의 (ll sum, ll xor_val)
  3. swich case를 사용한 경우 처리(if else 사용해도 무관할듯)
  4. while을 사용한 반복(for 사용해도 무관)

소스코드

#include <iostream>
#include <vector>

using namespace std;

typedef long long ll;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr), cout.tie(nullptr);

	ll sum = 0;
	ll xor_val = 0;

	int m;
	cin >> m;
	while (m--) {
		int q;
		cin >> q;
		
		int x;
		switch (q) {
		case 1:
			cin >> x;
			sum += x;
			xor_val ^= x;
			break;

		case 2:
			cin >> x;
			sum -= x;
			xor_val ^= x;
			break;

		case 3:
			cout << sum << '\\n';
			break;

		case 4:
			cout << xor_val << '\\n';
			break;
		}
	}

	return 0;
}