Rylah's Study & Daily Life

[Programmers Level 1] 두 정수 사이의 합 본문

Programmers/Level 1

[Programmers Level 1] 두 정수 사이의 합

Rylah 2022. 1. 9. 18:14

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

  • 두 정수 사이의 합
문제 설명

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

제한 조건
  • a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
  • a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
  • a와 b의 대소관계는 정해져있지 않습니다.
입출력 예
a b return
3 5 12
3 3 3
5 3 12
// Programmers Level 1. 두 정수 사이의 합
// https://programmers.co.kr/learn/courses/30/lessons/12912

#include <bits/stdc++.h>
using namespace std;

long long solution(int a, int b) {
	long long answer = 0;
	long long maxNum = max(a, b);
	long long minNum = min(a, b);
	answer = ((maxNum * (maxNum + 1)) / 2) - (((minNum - 1) * minNum) / 2);
	return answer;
}
int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int a, b;
	cin >> a >> b;
	cout << solution(a, b) << '\n';
	return 0;
}

단순 계산으로 ++ 해도 무난하지만 시그마 정리로 한번에 끝내고 싶었다.

채점을 시작합니다.
정확성 테스트
테스트 1 통과 (0.01ms, 4.26MB)
테스트 2 통과 (0.01ms, 4.33MB)
테스트 3 통과 (0.01ms, 3.65MB)
테스트 4 통과 (0.01ms, 4.25MB)
테스트 5 통과 (0.01ms, 4.32MB)
테스트 6 통과 (0.01ms, 3.66MB)
테스트 7 통과 (0.01ms, 4.27MB)
테스트 8 통과 (0.01ms, 4.27MB)
테스트 9 통과 (0.01ms, 3.66MB)
테스트 10 통과 (0.01ms, 4.33MB)
테스트 11 통과 (0.01ms, 3.67MB)
테스트 12 통과 (0.01ms, 3.66MB)
테스트 13 통과 (0.01ms, 4.32MB)
테스트 14 통과 (0.01ms, 4.26MB)
테스트 15 통과 (0.01ms, 4.32MB)
테스트 16 통과 (0.01ms, 4.27MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0