```
백준 10824번 네 수 Go 구현해보기
```

이번 글을 통해 배워갈 내용
- 백준 10824번 풀이
- bytesBuffer 연습
https://www.acmicpc.net/problem/10824
10824번: 네 수
첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)
www.acmicpc.net
백준 10824번은
난이도 브론즈 등급의 문제로서
4개의 숫자가 주어질 때
앞에 두 수를 있어 붙이고
뒤에 두 수를 있어 붙여서
더해준 다음 출력하면 되는 쉬운 문제입니다.
예시

1000000 2000000 3000000 4000000
10000002000000 + 30000004000000 = 40000006000000
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
문자열을 더하는데 자바에서 쓰던 것과 비슷한
bytes.Buffer를 사용하였습니다.
저는 이 방법이 string.Join(), + 연산자, fmt.Sprintf()보다는 빠른 것 같습니다.
전체 코드는 다음과 같습니다
package main
import (
"bufio"
"bytes"
"fmt"
"os"
"strconv"
)
// 두 스트링 숫자를 이러붙인 값을 리턴하는 함수
func concatTwoStrNum (lhs *string, rhs *string) int64 {
var bytesBuffer bytes.Buffer
bytesBuffer.WriteString(*lhs)
bytesBuffer.WriteString(*rhs)
concatedNum, error := strconv.ParseInt(bytesBuffer.String(), 0, 64)
if(error != nil){
concatedNum = 0
}
return concatedNum
}
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
var a, b, c, d string
fmt.Fscanln(reader, &a, &b, &c, &d)
fmt.Fprintln(writer, concatTwoStrNum(&a, &b) + concatTwoStrNum(&c, &d))
writer.Flush()
}
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
참조 및 인용
Introduction to Algorithms
A Tour of Go
tour.golang.org
728x90
'Go > Go 알고리즘' 카테고리의 다른 글
| 백준 10845번 큐 Go 구현해보기 (0) | 2021.11.08 |
|---|---|
| 백준 10829번 이진수 변환 Go 구현해보기 (0) | 2021.11.07 |
| 백준 10828번 스택 Go 구현해보기 (0) | 2021.11.07 |
| 백준 10991번 별찍기-16 Go 구현해보기 (1) | 2021.11.07 |
| 백준 2948번 2009년 Go 구현해보기 (0) | 2021.11.06 |