문자열 S, 각 문자를 R번 반복해서 새로운 문자열 P를 만들기
e.g.) 2 ABC -> AABBCC
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
var reader *bufio.Reader = bufio.NewReader(os.Stdin)
var writer *bufio.Writer = bufio.NewWriter(os.Stdout)
defer writer.Flush()
var times int
var str string
var times2 int
fmt.Scanln(×)
i := 0
for i < times {
fmt.Fscanln(reader, ×2, &str)
newSet := []string{}
for j := 0; j < len(str); j++ {
for k := 0; k < times2; k++ {
newSet = append(newSet, string(str[j]))
}
}
str_concat := strings.Join(newSet, "")
fmt.Fprintln(writer, str_concat)
i++
}
}
(1) Join(str []string, sep string - 구분자) string
str_concat := strings.Join(newSet, "")
(2) strings.Builder
package main
import (
"fmt"
"strings"
)
func main() {
var str_build strings.Builder
str_build.WriteString("Hello ")
str_build.WriteString("World!!")
fmt.Println(str_build.String())
}
출력 : Hello World!!
(3) bytes.Buffer
package main
import (
"bytes"
"fmt"
)
func main() {
var byte_buf bytes.Buffer
byte_buf.WriteString("Hello ")
byte_buf.WriteString("World!!")
fmt.Println(byte_buf.String())
}
출럭 : Hello World!!
📚 출처 : https://www.delftstack.com/ko/howto/go/how-to-efficiently-concatenate-strings-in-go/