프로그래머스 - 두 정수 사이의 합

well-life-gm·2021년 11월 6일
0

프로그래머스

목록 보기
31/125

프로그래머스 - 두 정수 사이의 합
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;
}

결과

profile
내가 보려고 만든 블로그

0개의 댓글