LeetCode TwoSum をテストしながら解く
LeetCodeという競技プログラミングサービスがある。 まだ始めたばかりなのだがとっつきやすい作りになっていて良い。 そんなLeetCodeの問題 TwoSum を解いてみた。 ただ解いてみたというのも面白くないので今回はテストコードも書きながら解答してみる。 TwoSum 問題はへのリンク https://leetcode.com/problems/two-sum/。 問いは下記の通り。 数値の入った配列と整数値targetが与えられるので、配列の中から足すとtargetになる値の組み合わせを見つけ、その要素がどこにあるかを答えよ。 必ず答えは存在するものとする。 また別々の位置の値を必ず使用する事 以下に例を書く Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1]. テストコードを書く コードを弄ってブラウザ上でテストしても問題はないが遅い。 なので今回は手元ですぐに動作するテストコードを書いた。 package twosum import ( "reflect" "testing" ) type testCase struct { array []int target int } func TestTwoSum(t *testing.T) { tests := []struct { input testCase output []int }{ {testCase{[]int{2, 7, 11, 15}, 9}, []int{0, 1}}, {testCase{[]int{2, 3, 4, 11, 15}, 6}, []int{0, 2}}, } for i, tt := range tests { sum := twoSum(tt....