chore: cleanup day 3
This commit is contained in:
		
							parent
							
								
									c894853cbd
								
							
						
					
					
						commit
						0f90769015
					
				@ -27,7 +27,7 @@ type symbol struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
type symbolTab map[int]map[int]*symbol
 | 
					type symbolTab map[int]map[int]*symbol
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func hasSymbol(tab symbolTab, row, col int, p partNumber) bool {
 | 
					func (tab symbolTab) hasSymbol(row, col int, p partNumber) bool {
 | 
				
			||||||
	if cols, ok := tab[row]; ok {
 | 
						if cols, ok := tab[row]; ok {
 | 
				
			||||||
		s, ok := cols[col]
 | 
							s, ok := cols[col]
 | 
				
			||||||
		if ok {
 | 
							if ok {
 | 
				
			||||||
@ -38,14 +38,13 @@ func hasSymbol(tab symbolTab, row, col int, p partNumber) bool {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return false
 | 
						return false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
func scanSymbol(tab symbolTab, p partNumber) bool {
 | 
					func (tab symbolTab) scanSymbol(p partNumber) bool {
 | 
				
			||||||
	rowStart, rowEnd := max(p.row-1, 0), p.row+1
 | 
						rowStart, rowEnd := max(p.row-1, 0), p.row+1
 | 
				
			||||||
	colStart, colEnd := max(p.col-1, 0), p.end+1
 | 
						colStart, colEnd := max(p.col-1, 0), p.end+1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for i := rowStart; i <= rowEnd; i++ {
 | 
						for i := rowStart; i <= rowEnd; i++ {
 | 
				
			||||||
		for j := colStart; j <= colEnd; j++ {
 | 
							for j := colStart; j <= colEnd; j++ {
 | 
				
			||||||
			ok := hasSymbol(tab, i, j, p)
 | 
								ok := tab.hasSymbol(i, j, p)
 | 
				
			||||||
			// fmt.Println(p.number, i, j, ok)
 | 
					 | 
				
			||||||
			if ok {
 | 
								if ok {
 | 
				
			||||||
				return true
 | 
									return true
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@ -54,19 +53,20 @@ func scanSymbol(tab symbolTab, p partNumber) bool {
 | 
				
			|||||||
	return false
 | 
						return false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 553079
 | 
				
			||||||
 | 
					// 84363105
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
	buf := bytes.NewReader(input)
 | 
						buf := bytes.NewReader(input)
 | 
				
			||||||
	scan := bufio.NewScanner(buf)
 | 
						scan := bufio.NewScanner(buf)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m := [][]rune{}
 | 
					 | 
				
			||||||
	parts := []partNumber{}
 | 
						parts := []partNumber{}
 | 
				
			||||||
	symbols := make(symbolTab)
 | 
						symbols := make(symbolTab)
 | 
				
			||||||
	symbolList := []*symbol{}
 | 
						symbolList := []*symbol{}
 | 
				
			||||||
 | 
						row := 0
 | 
				
			||||||
	for scan.Scan() {
 | 
						for scan.Scan() {
 | 
				
			||||||
		text := scan.Text()
 | 
							text := scan.Text()
 | 
				
			||||||
		row := len(m)
 | 
							row += 1
 | 
				
			||||||
		m = append(m, []rune(text))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		slice := make([]rune, 0, 3)
 | 
							slice := make([]rune, 0, 3)
 | 
				
			||||||
		var col int
 | 
							var col int
 | 
				
			||||||
@ -100,7 +100,7 @@ func main() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	sum := 0
 | 
						sum := 0
 | 
				
			||||||
	for i, p := range parts {
 | 
						for i, p := range parts {
 | 
				
			||||||
		ok := scanSymbol(symbols, p)
 | 
							ok := symbols.scanSymbol(p)
 | 
				
			||||||
		parts[i].hasSymbol = ok
 | 
							parts[i].hasSymbol = ok
 | 
				
			||||||
		if ok {
 | 
							if ok {
 | 
				
			||||||
			sum += p.number
 | 
								sum += p.number
 | 
				
			||||||
@ -114,10 +114,9 @@ func main() {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fmt.Println(m)
 | 
						// fmt.Println(parts)
 | 
				
			||||||
	fmt.Println(parts)
 | 
						// fmt.Println(symbols)
 | 
				
			||||||
	fmt.Println(symbols)
 | 
						// fmt.Println(symbolList)
 | 
				
			||||||
	fmt.Println(symbolList)
 | 
						fmt.Println("part1:", sum)
 | 
				
			||||||
	fmt.Println(sum)
 | 
						fmt.Println("part2:", sumGears)
 | 
				
			||||||
	fmt.Println(sumGears)
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user