본문 바로가기

Programmers/Go

[Programmers/Go] 두 정수 사이의 합

1. 문제

두 정수 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의 대소관계는 정해져있지 않습니다.

2. 풀이

// 두 정수 사이의 합
package addbetween

func Solution(a int, b int) int64 {
	var sum int64 = 0

	if a > b {
		a, b = b, a
	}

	for i := a; i <= b; i++ {
		sum += int64(i)
	}

	return sum
}

3. 테스트

package addbetween

import "testing"

func TestAddbetween(t *testing.T) {
	input1 := []int{3, 3, 5}
	input2 := []int{5, 3, 3}
	expect := []int64{12, 3, 12}

	for i := range input1 {
		result := Solution(input1[i], input2[i])
		if result != expect[i] {
			t.Errorf("Test%d: Wrong result", i+1)
			t.Error("expect:", expect[i])
			t.Error("result:", result)
		}
	}
}