728x90
9093
코드
input, _ := reader.ReadString('\n')
// input = strings.TrimSpace(input)
for i, s := range input {
fmt.Fprintf(writer, "%d: %s\n", i, string(s))
}
writer.Flush()
input, _, _ := reader.ReadLine()
for i, s := range input {
fmt.Fprintf(writer, "%d: %s\n", i, string(s))
}
writer.Flush()
입력에 대해 이런사실을 알게되었다.
그리고 Fprintf 하면 Flush()를 해줘야 한다. 왜 인지는 아직 모르겠다.
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
var t int
fmt.Fscanf(reader, "%d\n", &t)
var stack []string
for {
input, _, _ := reader.ReadLine()
input = append(input, '\n')
for _, s := range input {
if string(s) == " " || string(s) == "\n" {
for j, _ := range stack {
fmt.Fprint(writer, string(stack[len(stack)-(j+1)]))
}
fmt.Fprintf(writer, " ")
writer.Flush()
stack = nil
} else {
stack = append(stack, string(s))
}
}
fmt.Fprintf(writer, "\n")
writer.Flush()
t = t - 1
if t == 0 {
return
}
}
}
출력을 Fprintf 로 안하면 시간초과가 떴다. 하여튼 통과하고 채점현황을 봤는데
Go로는 총 4명 제출했고, 나만 시간이 엄청 걸린다ㅎㅎ;
(슬라이스가 아니고 배열을 사용하면 쫌 빨라질것 같다)
참고자료:
ryanking13.github.io/2020/02/06/golang-io.html
728x90