본문 바로가기

Programmers/Go

[Programmers/Go] 음양 더하기

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

 

코딩테스트 연습 - 음양 더하기

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re

programmers.co.kr