성능을 위한 입력 검색 최적화
입력 읽기 속도를 최적화하려는 질문에 대한 응답으로 bufio.Scanner 사용을 고려하는 것이 좋습니다. fmt.Scan을 통해. 그러나 bufio를 사용해도 시간 초과 문제가 지속됩니다.
이 문제를 해결하려면 fmt.Scan을 bufio.Scanner로 바꾸고 사용자 정의 변환 기능을 활용하여 원시 바이트에서 정수를 효율적으로 추출하면 입력 읽기 성능을 크게 향상시킬 수 있습니다. . 최적화된 솔루션은 다음과 같습니다.
package main import ( "bufio" "fmt" "os" ) func main() { var n, k, c int scanner := bufio.NewScanner(os.Stdin) scanner.Scan() fmt.Sscanf(scanner.Text(), "%d %d", &n, &k) for ; n > 0; n-- { scanner.Scan() if toInt(scanner.Bytes())%k == 0 { c++ } } fmt.Println(c) } func toInt(buf []byte) (n int) { for _, v := range buf { n = n*10 + int(v-'0') } return }
이 수정된 코드는 bufio.Scanner를 사용하여 입력 줄을 읽고, 불필요하게 문자열로 변환하는 대신 바이트에서 숫자를 직접 구문 분석하여 효율성을 최적화합니다. 결과적으로 이 솔루션은 다른 방법에 비해 눈에 띄는 성능 향상을 달성합니다.
위 내용은 더 빠른 정수 추출을 위해 Go에서 입력 검색을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!