프로그래머스 - 두 정수 사이의 합
1점짜리 문제이다.
swap할 때 xor 연산을 이용할 수 있다는 것만 익혀두면 될 것 같다.
multiply 할 때도 비트연산으로 하는 코드가 있던데 그 정도까진 봐도 나중에 못쓸것 같다.
n까지의 정수 합이 n x (n + 1) / 2인 것을 이용해서 풀었다.
#include <string>
#include <vector>
using namespace std;
long long solution(int a, int b) {
long long answer = 0;
if(a > b)
a ^= b ^= a ^= b;
long long num2 = 1LL * b * (b + 1);
long long num1 = 1LL * (a - 1) * a;
answer = (num2 - num1) >> 1;
return answer;
}