STUDY 기록/코테기록

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

TREEKIM 2022. 6. 20. 21:18

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

재한사항
  • s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예sreturn
"abcde" "c"
"qwer" "we"

 

내가 푼 풀이

def solution(s):
    len_s = len(s)
    mid = int(len_s/2)
    if len_s % 2 == 0:
        answer = s[mid-1:mid+1]
    elif (len_s-1) % 2 == 0:
        answer = s[mid]   
    return answer

 

다른 사람의 풀이

def string_middle(str):
    # 함수를 완성하세요

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

(len(str)-1)//2 이부분이 짝수냐 홀수냐에 상관없이 만드네요. 인덱스는 항상 0 번째부터 출발하니까, length를 아에 1을 빼버리고 //2를 한다면 짝수는 1을 하나 더빼서 그전의 인덱스부터 가져올 수 있군요. 잘 배웠습니다.

def string_middle(str):
    a = len(str)
    if a % 2 == 0 :
        a = (a-2) / 2
    else :
        a = (a-1) / 2
    return str[int(a) : -int(a)]

 

와 두번쨰 범위 -값으로 표현하다닝! 한수 배워갑니다

짝수일때 -1 대신 정수에서 2 빼고 /2 한거 예술이네

def string_middle(str):
    leng = len(str)
    if leng%2==0:
        return str[leng//2-1:leng//2+1]
    else:
        return str[leng//2]
solution = lambda s: s[(len(s) - 1) // 2 : len(s) // 2 + 1]