Day9
This commit is contained in:
parent
bcacad9d15
commit
5e81d05091
|
@ -11,8 +11,11 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="400bdf61-8921-41d3-8f98-a0a1b0877f46" name="Default Changelist" comment="">
|
<list default="true" id="400bdf61-8921-41d3-8f98-a0a1b0877f46" name="Default Changelist" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/day2/day2.go" beforeDir="false" afterPath="$PROJECT_DIR$/day2/day2.go" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/day9/day9.go" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/day3/day3.go" beforeDir="false" afterPath="$PROJECT_DIR$/day3/day3.go" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/day9/day9Test.txt" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/day1/day1.go" beforeDir="false" afterPath="$PROJECT_DIR$/day1/day1.go" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/helper/readFile.go" beforeDir="false" afterPath="$PROJECT_DIR$/helper/helper.go" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
@ -44,7 +47,7 @@
|
||||||
<property name="configurable.Project.GOPATH.is.expanded" value="true" />
|
<property name="configurable.Project.GOPATH.is.expanded" value="true" />
|
||||||
<property name="go.import.settings.migrated" value="true" />
|
<property name="go.import.settings.migrated" value="true" />
|
||||||
<property name="go.sdk.automatically.set" value="true" />
|
<property name="go.sdk.automatically.set" value="true" />
|
||||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/day3" />
|
<property name="last_opened_file_path" value="$PROJECT_DIR$/day6" />
|
||||||
<property name="settings.editor.selected.configurable" value="com.goide.configuration.GoLibrariesConfigurableProvider" />
|
<property name="settings.editor.selected.configurable" value="com.goide.configuration.GoLibrariesConfigurableProvider" />
|
||||||
</component>
|
</component>
|
||||||
<component name="RecentsManager">
|
<component name="RecentsManager">
|
||||||
|
@ -53,7 +56,7 @@
|
||||||
<recent name="C:\Users\karls\go\src\AoC2020" />
|
<recent name="C:\Users\karls\go\src\AoC2020" />
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected="Go Build.go build day5.go">
|
<component name="RunManager" selected="Go Build.go build day9.go">
|
||||||
<configuration name="go build day1.go" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
|
<configuration name="go build day1.go" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
|
||||||
<module name="AoC2020" />
|
<module name="AoC2020" />
|
||||||
<working_directory value="$PROJECT_DIR$/day1" />
|
<working_directory value="$PROJECT_DIR$/day1" />
|
||||||
|
@ -109,7 +112,7 @@
|
||||||
<configuration name="go build day5.go" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
|
<configuration name="go build day5.go" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
|
||||||
<module name="AoC2020" />
|
<module name="AoC2020" />
|
||||||
<working_directory value="$PROJECT_DIR$/day5" />
|
<working_directory value="$PROJECT_DIR$/day5" />
|
||||||
<parameters value=""BFFFBBFRRR"" />
|
<parameters value="day5Input.txt" />
|
||||||
<kind value="FILE" />
|
<kind value="FILE" />
|
||||||
<filePath value="$PROJECT_DIR$/day5/day5.go" />
|
<filePath value="$PROJECT_DIR$/day5/day5.go" />
|
||||||
<package value="AoC2020" />
|
<package value="AoC2020" />
|
||||||
|
@ -117,12 +120,56 @@
|
||||||
<output_directory value="$PROJECT_DIR$/day5" />
|
<output_directory value="$PROJECT_DIR$/day5" />
|
||||||
<method v="2" />
|
<method v="2" />
|
||||||
</configuration>
|
</configuration>
|
||||||
|
<configuration name="go build day6.go" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
|
||||||
|
<module name="AoC2020" />
|
||||||
|
<working_directory value="$PROJECT_DIR$/day6" />
|
||||||
|
<parameters value="day6Input.txt" />
|
||||||
|
<kind value="FILE" />
|
||||||
|
<filePath value="$PROJECT_DIR$/day6/day6.go" />
|
||||||
|
<package value="AoC2020" />
|
||||||
|
<directory value="$PROJECT_DIR$" />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<configuration name="go build day7.go" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
|
||||||
|
<module name="AoC2020" />
|
||||||
|
<working_directory value="$PROJECT_DIR$/day7" />
|
||||||
|
<parameters value="day7Input.txt" />
|
||||||
|
<kind value="FILE" />
|
||||||
|
<filePath value="$PROJECT_DIR$/day7/day7.go" />
|
||||||
|
<package value="AoC2020" />
|
||||||
|
<directory value="$PROJECT_DIR$" />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<configuration name="go build day8.go" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
|
||||||
|
<module name="AoC2020" />
|
||||||
|
<working_directory value="$PROJECT_DIR$/day8" />
|
||||||
|
<parameters value="day8Input.txt" />
|
||||||
|
<kind value="FILE" />
|
||||||
|
<filePath value="$PROJECT_DIR$/day8/day8.go" />
|
||||||
|
<package value="AoC2020" />
|
||||||
|
<directory value="$PROJECT_DIR$" />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<configuration name="go build day9.go" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
|
||||||
|
<module name="AoC2020" />
|
||||||
|
<working_directory value="$PROJECT_DIR$/day9" />
|
||||||
|
<parameters value="day9Input.txt" />
|
||||||
|
<kind value="FILE" />
|
||||||
|
<filePath value="$PROJECT_DIR$/day9/day9.go" />
|
||||||
|
<package value="AoC2020" />
|
||||||
|
<directory value="$PROJECT_DIR$" />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
<list>
|
<list>
|
||||||
<item itemvalue="Go Build.go build day1.go" />
|
<item itemvalue="Go Build.go build day1.go" />
|
||||||
<item itemvalue="Go Build.go build day2.go" />
|
<item itemvalue="Go Build.go build day2.go" />
|
||||||
<item itemvalue="Go Build.go build day3.go" />
|
<item itemvalue="Go Build.go build day3.go" />
|
||||||
<item itemvalue="Go Build.go build day4.go" />
|
<item itemvalue="Go Build.go build day4.go" />
|
||||||
<item itemvalue="Go Build.go build day5.go" />
|
<item itemvalue="Go Build.go build day5.go" />
|
||||||
|
<item itemvalue="Go Build.go build day7.go" />
|
||||||
|
<item itemvalue="Go Build.go build day6.go" />
|
||||||
|
<item itemvalue="Go Build.go build day8.go" />
|
||||||
|
<item itemvalue="Go Build.go build day9.go" />
|
||||||
</list>
|
</list>
|
||||||
<recent_temporary>
|
<recent_temporary>
|
||||||
<list>
|
<list>
|
||||||
|
@ -147,39 +194,39 @@
|
||||||
<option name="oldMeFiltersMigrated" value="true" />
|
<option name="oldMeFiltersMigrated" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="WindowStateProjectService">
|
<component name="WindowStateProjectService">
|
||||||
<state x="448" y="103" width="1092" height="859" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1607175613035">
|
<state x="351" y="0" width="1092" height="955" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1607534020287">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state x="-1472" y="103" key="#com.intellij.execution.impl.EditConfigurationsDialog/-1920.0.1920.1040/0.0.1920.1040@-1920.0.1920.1040" timestamp="1607019292652" />
|
<state x="-1472" y="103" key="#com.intellij.execution.impl.EditConfigurationsDialog/-1920.0.1920.1040/0.0.1920.1040@-1920.0.1920.1040" timestamp="1607019292652" />
|
||||||
<state x="448" y="103" width="1092" height="859" key="#com.intellij.execution.impl.EditConfigurationsDialog/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607175613035" />
|
<state x="351" y="0" width="1092" height="955" key="#com.intellij.execution.impl.EditConfigurationsDialog/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607534020287" />
|
||||||
<state x="661" y="322" key="#com.intellij.fileTypes.FileTypeChooser" timestamp="1606836882379">
|
<state x="661" y="322" key="#com.intellij.fileTypes.FileTypeChooser" timestamp="1606836882379">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state x="661" y="322" key="#com.intellij.fileTypes.FileTypeChooser/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1606836882379" />
|
<state x="661" y="322" key="#com.intellij.fileTypes.FileTypeChooser/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1606836882379" />
|
||||||
<state x="739" y="287" key="FileChooserDialogImpl" timestamp="1607016918790">
|
<state x="739" y="287" key="FileChooserDialogImpl" timestamp="1607278759015">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state x="739" y="287" key="FileChooserDialogImpl/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607016918790" />
|
<state x="739" y="287" key="FileChooserDialogImpl/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607278759015" />
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.bottom" timestamp="1607175589852">
|
<state width="1877" height="266" key="GridCell.Tab.0.bottom" timestamp="1607533993744">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.bottom/-1920.0.1920.1040/0.0.1920.1040@-1920.0.1920.1040" timestamp="1607175230302" />
|
<state width="1877" height="304" key="GridCell.Tab.0.bottom/-1920.0.1920.1040/0.0.1920.1040@-1920.0.1920.1040" timestamp="1607175230302" />
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.bottom/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607175589852" />
|
<state width="1877" height="266" key="GridCell.Tab.0.bottom/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607533993744" />
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.center" timestamp="1607175589852">
|
<state width="1877" height="266" key="GridCell.Tab.0.center" timestamp="1607533993744">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.center/-1920.0.1920.1040/0.0.1920.1040@-1920.0.1920.1040" timestamp="1607175230302" />
|
<state width="1877" height="304" key="GridCell.Tab.0.center/-1920.0.1920.1040/0.0.1920.1040@-1920.0.1920.1040" timestamp="1607175230302" />
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.center/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607175589852" />
|
<state width="1877" height="266" key="GridCell.Tab.0.center/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607533993744" />
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.left" timestamp="1607175589852">
|
<state width="1877" height="266" key="GridCell.Tab.0.left" timestamp="1607533993743">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.left/-1920.0.1920.1040/0.0.1920.1040@-1920.0.1920.1040" timestamp="1607175230302" />
|
<state width="1877" height="304" key="GridCell.Tab.0.left/-1920.0.1920.1040/0.0.1920.1040@-1920.0.1920.1040" timestamp="1607175230302" />
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.left/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607175589852" />
|
<state width="1877" height="266" key="GridCell.Tab.0.left/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607533993743" />
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.right" timestamp="1607175589852">
|
<state width="1877" height="266" key="GridCell.Tab.0.right" timestamp="1607533993744">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.right/-1920.0.1920.1040/0.0.1920.1040@-1920.0.1920.1040" timestamp="1607175230302" />
|
<state width="1877" height="304" key="GridCell.Tab.0.right/-1920.0.1920.1040/0.0.1920.1040@-1920.0.1920.1040" timestamp="1607175230302" />
|
||||||
<state width="1877" height="304" key="GridCell.Tab.0.right/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607175589852" />
|
<state width="1877" height="266" key="GridCell.Tab.0.right/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607533993744" />
|
||||||
<state x="782" y="240" key="RollbackChangesDialog" timestamp="1607174263188">
|
<state x="782" y="240" key="RollbackChangesDialog" timestamp="1607174263188">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
|
@ -188,10 +235,14 @@
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state x="461" y="165" key="SettingsEditor/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607081830252" />
|
<state x="461" y="165" key="SettingsEditor/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607081830252" />
|
||||||
<state x="92" y="92" width="1736" height="856" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1607174299439">
|
<state x="92" y="92" width="1736" height="856" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1607177137138">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state x="92" y="92" width="1736" height="856" key="com.intellij.history.integration.ui.views.FileHistoryDialog/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607174299439" />
|
<state x="92" y="92" width="1736" height="856" key="com.intellij.history.integration.ui.views.FileHistoryDialog/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607177137138" />
|
||||||
|
<state x="593" y="141" width="585" height="801" key="find.popup" timestamp="1607533841136">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state x="593" y="141" width="585" height="801" key="find.popup/-1920.0.1920.1040/0.0.1920.1040@0.0.1920.1040" timestamp="1607533841136" />
|
||||||
<state x="623" y="225" width="672" height="678" key="search.everywhere.popup" timestamp="1607081728725">
|
<state x="623" y="225" width="672" height="678" key="search.everywhere.popup" timestamp="1607081728725">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
|
|
22
day1/day1.go
22
day1/day1.go
|
@ -19,26 +19,16 @@ func main() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
fmt.Println(day1(numbers))
|
fmt.Println(day1(numbers, 2020))
|
||||||
fmt.Println(day1_part2(numbers))
|
fmt.Println(day1_part2(numbers))
|
||||||
}
|
}
|
||||||
|
|
||||||
func day1(numbers []int) int {
|
func day1(numbers []int, goal int) int {
|
||||||
goal := 2020
|
add1, add2, err := helper.FindAddendsForSum(numbers,goal)
|
||||||
sort.Ints(numbers)
|
if err != nil {
|
||||||
p1 := 0
|
return 0
|
||||||
p2 := len(numbers) - 1
|
|
||||||
for {
|
|
||||||
if numbers[p1]+numbers[p2] < goal {
|
|
||||||
p1++
|
|
||||||
}
|
|
||||||
if numbers[p1]+numbers[p2] > goal {
|
|
||||||
p2--
|
|
||||||
}
|
|
||||||
if numbers[p1]+numbers[p2] == goal {
|
|
||||||
return numbers[p1] * numbers[p2]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return add1 * add2
|
||||||
}
|
}
|
||||||
|
|
||||||
func day1_part2(numbers []int) (int, error) {
|
func day1_part2(numbers []int) (int, error) {
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"AoC2020/helper"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
var pointer int
|
||||||
|
var band []int
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
args := os.Args[1:]
|
||||||
|
input, err := helper.GetInput(args[0])
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
numbers, err := helper.MapToNumber(input)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
fmt.Printf("%v \n",numbers)
|
||||||
|
band = numbers
|
||||||
|
breaker := part1(25)
|
||||||
|
fmt.Println(breaker)
|
||||||
|
fmt.Print(part2(breaker))
|
||||||
|
}
|
||||||
|
|
||||||
|
func part1(preambleLen int) int{
|
||||||
|
pointer = preambleLen
|
||||||
|
isValid := true
|
||||||
|
for isValid {
|
||||||
|
_,_,err := helper.FindAddendsForSum(band[pointer-preambleLen:pointer],band[pointer])
|
||||||
|
if err != nil {
|
||||||
|
return band[pointer]
|
||||||
|
isValid = false
|
||||||
|
}
|
||||||
|
pointer++
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func part2(breaker int) int{
|
||||||
|
for p1 := 0; p1 < len(band); p1++ {
|
||||||
|
for p2 := p1 + 1; p2 < len(band); p2++ {
|
||||||
|
array := make([]int, len(band[p1:p2]))
|
||||||
|
copy(array,band[p1:p2])
|
||||||
|
sumArray := 0
|
||||||
|
for _,value := range array {
|
||||||
|
sumArray += value
|
||||||
|
}
|
||||||
|
if sumArray == breaker {
|
||||||
|
fmt.Printf("%v \n" ,array)
|
||||||
|
var max int
|
||||||
|
var min int
|
||||||
|
for i, val := range array {
|
||||||
|
if i==0 || val < min {
|
||||||
|
min = val
|
||||||
|
}
|
||||||
|
if i==0 || val > max {
|
||||||
|
max = val
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Printf("%d , %d \n" ,min, max)
|
||||||
|
return min + max
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func run(preambleLen int) {
|
||||||
|
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,20 @@
|
||||||
|
35
|
||||||
|
20
|
||||||
|
15
|
||||||
|
25
|
||||||
|
47
|
||||||
|
40
|
||||||
|
62
|
||||||
|
55
|
||||||
|
65
|
||||||
|
95
|
||||||
|
102
|
||||||
|
117
|
||||||
|
150
|
||||||
|
182
|
||||||
|
127
|
||||||
|
219
|
||||||
|
299
|
||||||
|
277
|
||||||
|
309
|
||||||
|
576
|
|
@ -1,7 +1,9 @@
|
||||||
package helper
|
package helper
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
@ -34,3 +36,23 @@ func MapToNumber(strings []string) ([]int, error) {
|
||||||
}
|
}
|
||||||
return numbers, nil
|
return numbers, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FindAddendsForSum (possibleAddends []int, sum int) (int, int, error) {
|
||||||
|
var array = make([]int,len(possibleAddends))
|
||||||
|
copy(array,possibleAddends)
|
||||||
|
sort.Ints(array)
|
||||||
|
p1 := 0
|
||||||
|
p2 := len(array) - 1
|
||||||
|
for p1 < p2 {
|
||||||
|
if array[p1]+array[p2] < sum {
|
||||||
|
p1++
|
||||||
|
}
|
||||||
|
if array[p1]+array[p2] > sum {
|
||||||
|
p2--
|
||||||
|
}
|
||||||
|
if array[p1]+array[p2] == sum {
|
||||||
|
return array[p1] , array[p2], nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0,0,errors.New("No fitting Addends found")
|
||||||
|
}
|
Loading…
Reference in New Issue