알고리즘/백준
백준 11721번 - 열 개씩 끊어 출력하기 / Go
Hwisaek
2022. 4. 30. 01:33
반응형
문제: https://www.acmicpc.net/problem/11721
11721번: 열 개씩 끊어 출력하기
첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.
www.acmicpc.net
문제 설명
더보기
문제
알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다.
한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.
출력
입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 미만의 글자만 출력할 수도 있다.
예제 입력 1 복사
BaekjoonOnlineJudge
예제 출력 1 복사
BaekjoonOn
lineJudge
예제 입력 2 복사
OneTwoThreeFourFiveSixSevenEightNineTen
예제 출력 2 복사
OneTwoThre
eFourFiveS
ixSevenEig
htNineTen
정답
package main
import (
"bufio"
"os"
"strings"
"testing"
)
func main() {
rd := bufio.NewReader(os.Stdin)
wr := bufio.NewWriter(os.Stdout)
word := scan11721(rd)
_, _ = wr.WriteString(solution11721(word))
_ = wr.Flush()
}
func solution11721(word string) (result string) {
strArr := make([]string, 0, len(word)/10+1)
for i := 0; i < len(word)/10; i++ {
strArr = append(strArr, word[i*10:(i+1)*10])
}
strArr = append(strArr, word[len(word)/10*10:])
result = strings.Join(strArr, "\n")
return
}
func scan11721(rd *bufio.Reader) string {
str, _ := rd.ReadString('\n') // 여기서 text는 마지막에 줄바꿈 문자를 포함하므로
str = strings.TrimSpace(str) // 줄바꿈 문자를 제거해야 함
return str
}
func Benchmark11721(b *testing.B) {
for i := 0; i < b.N; i++ {
solution11721("OneTwoThreeFourFiveSixSevenEightNineTenOneTwoThreeFourFiveSixSevenEightNineTenOneTwoThreeFourFiveSix")
}
}
func Test_solution11721(t *testing.T) {
type args struct {
word string
}
tests := []struct {
name string
args args
wantResult string
}{
{name: "", args: args{word: "BaekjoonOnlineJudge"}, wantResult: "BaekjoonOn\nlineJudge"},
{name: "", args: args{word: "OneTwoThreeFourFiveSixSevenEightNineTen"}, wantResult: "OneTwoThre\neFourFiveS\nixSevenEig\nhtNineTen"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotResult := solution11721(tt.args.word); gotResult != tt.wantResult {
t.Errorf("solution11721() = %v, want %v", gotResult, tt.wantResult)
}
})
}
}
풀이
10개씩 끊어서 출력하는 간단한 문제이다.
for문을 10으로 나눈 몫을 조건으로 돌려서 10글자씩 출력하고, 마지막엔 나머지 글자를 출력하면 된다.
반응형