2021/03 part 1 finished started with part 2
This commit is contained in:
parent
2d8a3d5780
commit
80cd2210a3
1 changed files with 36 additions and 22 deletions
|
@ -38,7 +38,12 @@ func ConvertToUsefulData(s []string) [][]uint {
|
|||
}
|
||||
func main() {
|
||||
result := Part1(ConvertToUsefulData(GetData("./data")))
|
||||
fmt.Printf("The Power consumption is: %d", result)
|
||||
fmt.Printf("The Power consumption is: %d\n", result)
|
||||
|
||||
data := ConvertToUsefulData(GetData("./test-data"))
|
||||
for _, f := range data {
|
||||
fmt.Println(f)
|
||||
}
|
||||
}
|
||||
|
||||
func Part1(data [][]uint) uint {
|
||||
|
@ -64,16 +69,15 @@ func Part1(data [][]uint) uint {
|
|||
|
||||
return gammaRate * epsilonRate
|
||||
}
|
||||
func ConvertToUsefulDataPart2(s []string) [][]uint {
|
||||
a := make([][]uint, len(s))
|
||||
|
||||
func dataSliceConvert(data [][]uint) [][]uint {
|
||||
a := make([][]uint, len(data[0]))
|
||||
for i := range a {
|
||||
a[i] = make([]uint, len(s[0]))
|
||||
a[i] = make([]uint, len(data))
|
||||
}
|
||||
for i, data := range s {
|
||||
split := strings.Split(data, "")
|
||||
for j, data2 := range split {
|
||||
x, _ := strconv.Atoi(data2)
|
||||
a[j][i] = uint(x)
|
||||
for i, row := range data {
|
||||
for j, dataEntry := range row {
|
||||
a[j][i] = dataEntry
|
||||
}
|
||||
}
|
||||
return a
|
||||
|
@ -96,22 +100,32 @@ func WhichIsMore(data []uint) int {
|
|||
return 0
|
||||
}
|
||||
|
||||
func Part2(data [][]uint) (uint, uint) {
|
||||
oxygenRate := uint(0)
|
||||
for _, row := range data {
|
||||
fmt.Println(row)
|
||||
more := WhichIsMore(row)
|
||||
//countOnly := WhichIsMore(row)
|
||||
switch more {
|
||||
case 0:
|
||||
|
||||
case 1:
|
||||
func Cycle(data [][]uint, i int) [][]uint {
|
||||
var result [][]uint
|
||||
|
||||
test := make([]uint, len(data))
|
||||
for j := range data {
|
||||
test[j] = data[j][i]
|
||||
}
|
||||
more := uint(WhichIsMore(test))
|
||||
//fmt.Println(more)
|
||||
//fmt.Println(test)
|
||||
for _, odata := range data {
|
||||
if odata[i] == more {
|
||||
result = append(result, odata)
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
func Part2(data [][]uint) (uint, uint) {
|
||||
ordered := dataSliceConvert(data)
|
||||
oxygenRate := Cycle(ordered, 0)
|
||||
for i := range ordered[0] {
|
||||
oxygenRate := Cycle(oxygenRate, i)
|
||||
fmt.Println(oxygenRate)
|
||||
}
|
||||
for _, row := range data {
|
||||
fmt.Println(row)
|
||||
}
|
||||
|
||||
return 0, 0
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue