1. 문제
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
제한사항
- absolutes의 길이는 1 이상 1,000 이하입니다.
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs의 길이는 absolutes의 길이와 같습니다.
- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
2. 풀이
// 음양 더하기
package addsigns
func Solution(absolutes []int, signs []bool) int {
answer := 0
for i, value := range absolutes {
sign := 1
if !signs[i] {
sign *= -1
}
answer += value * sign
}
return answer
}
3. 테스트
package addsigns
import "testing"
func TestAddsigns(t *testing.T) {
input1 := [][]int{{4, 7, 12}, {1, 2, 3}}
input2 := [][]bool{{true, false, true}, {false, false, true}}
expect := []int{9, 0}
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)
}
}
}
programmers.co.kr/learn/courses/30/lessons/76501
'Programmers > Go' 카테고리의 다른 글
[Programmers/Go] 두 정수 사이의 합 (0) | 2021.04.29 |
---|---|
[Programmers/Go] 나누어 떨어지는 숫자 배열 (0) | 2021.04.29 |
[Programmers/Go] 내적 (0) | 2021.04.29 |
[Programmers/Go] 소수 만들기 (0) | 2021.04.29 |
[Programmers/Go] 가운데 글자 가져오기 (0) | 2021.04.29 |