문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
s | return |
---|
“abcde” | “c” |
“qwer” | “we” |
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
| func solution(s string) string {
length := len(s)
if length == 1 {
return s
}
middle := length / 2
if length%2 == 0 {
return string(s[middle-1 : middle+1])
}
return string(s[middle])
}
|
length
가 1 이라면 문자열 s
를 바로 반환length
를 2로 나눈 나머지가 0 이라면, 문자열 길이가 짝수이므로 s[middle-1 : middle+1]
s를 슬라이싱하여 가운데 두 글자를 반환length
가 홀수라면 가운데 글자 반환
테스트코드
유닛 테스트
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| const TESTCOUNT = 2
var (
s = [TESTCOUNT]string{
"abcde",
"qwer",
}
result = [TESTCOUNT]string{
"c",
"we",
}
)
func TestSolution(t *testing.T) {
for i := 0; i < TESTCOUNT; i++ {
fmt.Println("s : ", s[i])
fmt.Println("result : ", result[i])
fmt.Println("solution result : ", solution(s[i]))
}
}
|
1
2
3
4
5
6
7
8
9
10
11
| $ go test -v
=== RUN TestSolution
s : abcde
result : c
solution result : c
s : qwer
result : we
solution result : we
--- PASS: TestSolution (0.00s)
PASS
ok golang-coding-test/lv1/middle_char 0.139s
|