프로그래머스 코딩테스트 연습 - 두 정수 사이의 합(Level 1)
PS/Programmers

프로그래머스 코딩테스트 연습 - 두 정수 사이의 합(Level 1)

programmers

 

문제

프로그래머스 코딩테스트 연습 - 두 정수 사이의 합(Level 1) 

https://programmers.co.kr/learn/courses/30/lessons/12912 

 

코딩테스트 연습 - 두 정수 사이의 합

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우

programmers.co.kr


사용 알고리즘

- Math

 

풀이

합 구하는 공식 사용하면 한줄컷

 

나의 코드

#include <string>
#include <vector>

using namespace std;

long long solution(int a, int b) {
    return (long long) (a+b)*(abs(a-b)+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;
    answer = (long long)b * -~b / 2 - (long long)a * ~-a / 2;
    return answer;
}

 

728x90