Covenant

문제

getMiddle메소드는 하나의 단어를 입력 받습니다. 단어를 입력 받아서 가운데 글자를 반환하도록 getMiddle메소드를 만들어 보세요. 단어의 길이가 짝수일경우 가운데 두글자를 반환하면 됩니다.

예를들어 입력받은 단어가 power이라면 w를 반환하면 되고, 입력받은 단어가 test라면 es를 반환하면 됩니다.



나의 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def string_middle(str1):
    
    if len(str1)%== 0:
        middle_num_index = len(str1)/-1
        middle_num_index = int(middle_num_index)
        middle_num_index_2 = middle_num_index+1
        return str1[middle_num_index] + str1[middle_num_index_2]
    else:
        middle_num_index = len(str1)/2
        middle_num_index = int(middle_num_index) -1
        return str1[middle_num_index+1]
 
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(string_middle("hre"))
cs

홀수일 때, 짝수일 때 if로 나눈 다음에 가운데 문자가 나올 수 있게 글자 길이를 2로 나누어서 인덱스 번호를 계산했다. 



다른 사람의 풀이

1
2
3
4
5
def string_middle(str):
    return str[(len(str)-1)//2:len(str)//2+1]
 
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(string_middle("power"))
cs

이런 문자의 경우에 슬라이싱을 적절히 활용하면 쉽게 풀 수 있다.