Coding Test

[Python 프로그래머스] 가운데 글자 가져오기

hyungminjeon 2024. 6. 18. 14:56

[문제]

[해결]

나의 풀이

def solution(s):
    if len(s) % 2 == 1:
        return s[(len(s)//2)]
    else:
        return s[(len(s)//2)-1:(len(s)//2)+1]

 

다른 사람의 풀이

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

[정리 및 새롭게 알게 된 점]

나의 경우 if else 구문을 이용해 s의 길이가 홀수인 경우와 그렇지 않은 경우(짝수)로 나누어 각각의 string에 대해 가운뎃 값을 반환하는 코드를 작성하였다. 하지만 다른 사람의 풀이와 같이 slicing의 첫째값으로 (len(str)-1)//2를 해준다면 str이 홀수인경우 (len(str)-1)//2 값이 변하지 않고 짝수인 경우는 (len(str)-1)//2 값이 -1만큼 작아지므로 홀수값인 경우 중간값을 시작점으로 하고 짝수인 경우 가운데 두글자의 첫부분에서 slicing을 시작하게 되어 따로 if else 구문을 이용하지 않아도 한줄만으로 홀수인 경우와 짝수인 경우의 결괏값을 모두 만족할 수 있다.