가운데 글자 가져오기
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한 조건
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
s | return |
"abcde" | "c" |
"qwer" | "we" |
문제 해결하기
func solution(s string) string
이 문제는 간단하다. 특히나 Go 에서는 슬라이스를 사용할 수 있어서 더욱 간단하다. 문자열의 길이에서 가장 중간에 해당하는 위치를 구하고, 거기에 2로 나뉘어지지 않으면, 해당 인덱스를, 나뉘어 진다면 중간에 있는 두 개를 가져오면 되는데, 코드는 설명할것도 없이 아래와 같다.
func solution(s string) string {
center := int(math.Floor(float64(len(s))) / 2)
if len(s)%2 != 0 {
return string(s[center])
}
return s[center-1 : center+1]
}
func TestSolution(t *testing.T) {
cases := []struct {
s string
expect string
}{
{"abcde", "c"},
{"qwer", "we"},
}
for _, c := range cases {
if r := solution(c.s); r != c.expect {
t.Errorf("s %#v; got %#v, want %#v", c.s, r, c.expect)
}
}
}
더 읽을거리
https://github.com/pronist/al.go/tree/main/programmers/_12903