출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

 

문제 자체는 나쁘지 않은 난이도이다. 내가 생각한건 단순히 이제 문제에서 제시했듯이, 단어의 길이가 짝수일때와 홀수일 때 두개의 차이를 나누어서 실행만 시켜주면 될 것이라 생각해서 그렇게 했다:

def solution(s):
    answer = ''
    word_list = [i for i in s]
    
    for i in range(len(word_list)):
        if len(word_list) % 2 == 0:
            answer = str(word_list[(len(word_list)//2)-1]) + str(word_list[(len(word_list)//2)])
        elif len(word_list) % 2 != 0:
            answer = str(word_list[(len(word_list)//2)])
    return answer

 

크게 뭐가 복잡하거나 그런 것은 없고 단지 난잡하게 생겼을 뿐이다. 이제는 다른 사람의 풀이를 보자

 

※ 다른 사람의 풀이:

 

def solution(s):
    return s[(len(s)-1)//2:len(s)//2+1]

??? 너무나도 간단하게 풀었다. 예를 들어 s의 길이가 5이면, s[2:3]을 출력하게 되는데, 그러면 중간에 있는 단어를, 만약 s의 길이가 6이라면 s[2:4]을 출력하여 중간의 두개의 단어를 출력하게 된다... 너무나도 간단한 풀이라 놀랬다. 이런 숏코딩과도 비슷하면서 간결한 답을 내는 방식도 계속 생각을 할 수 있어야 겠다.