문제 자체는 나쁘지 않은 난이도이다. 내가 생각한건 단순히 이제 문제에서 제시했듯이, 단어의 길이가 짝수일때와 홀수일 때 두개의 차이를 나누어서 실행만 시켜주면 될 것이라 생각해서 그렇게 했다:
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]을 출력하여 중간의 두개의 단어를 출력하게 된다... 너무나도 간단한 풀이라 놀랬다. 이런 숏코딩과도 비슷하면서 간결한 답을 내는 방식도 계속 생각을 할 수 있어야 겠다.
'알고리즘 테스트 > 프로그래머스 문제풀이 및 해설' 카테고리의 다른 글
<프로그래머스 문제풀이: 나누어 떨어지는 숫자 배열> (0) | 2020.11.01 |
---|---|
<프로그래머스 문제풀이: 같은 숫자는 싫어> Level 1 - 파이썬 (0) | 2020.10.27 |
<프로그래머스 문제풀이: 2016년> Level1 - 파이썬 (0) | 2020.10.22 |
<프로그래머스 문제풀이: K번째 수> Level 1 - 파이썬 (0) | 2020.10.21 |
<프로그래머스 문제풀이: 모의고사> Level 1 - 파이썬 (0) | 2020.10.21 |