상세 컨텐츠

본문 제목

[HackerRank] A Very Big Sum (Algorithm)

PROGRAMMING/Algorithm

by koharin 2021. 1. 5. 00:05

본문

728x90
반응형

알고리즘 문제

 

Go 언어로 풀어봤다.

result := 0으로 하면 오류가 나서, result를 int64로서의 0으로 주고 ar 배열의 원소를 result에 더해서 결과를 리턴하는 aVeryBigSum 함수를 구현했다.

package main

import (
    "bufio"
    "fmt"
    "io"
    "os"
    "strconv"
    "strings"
)

// Complete the aVeryBigSum function below.
func aVeryBigSum(ar []int64) int64 {
    result := int64(0)
    for _, i := range ar {
        result += i
    }
    return result

}

func main() {
    reader := bufio.NewReaderSize(os.Stdin, 1024 * 1024)

    stdout, err := os.Create(os.Getenv("OUTPUT_PATH"))
    checkError(err)

    defer stdout.Close()

    writer := bufio.NewWriterSize(stdout, 1024 * 1024)

    arCount, err := strconv.ParseInt(readLine(reader), 10, 64)
    checkError(err)

    arTemp := strings.Split(readLine(reader), " ")

    var ar []int64

    for i := 0; i < int(arCount); i++ {
        arItem, err := strconv.ParseInt(arTemp[i], 10, 64)
        checkError(err)
        ar = append(ar, arItem)
    }

    result := aVeryBigSum(ar)

    fmt.Fprintf(writer, "%d\n", result)

    writer.Flush()
}

func readLine(reader *bufio.Reader) string {
    str, _, err := reader.ReadLine()
    if err == io.EOF {
        return ""
    }

    return strings.TrimRight(string(str), "\r\n")
}

func checkError(err error) {
    if err != nil {
        panic(err)
    }
}
728x90
반응형

관련글 더보기