본문 바로가기

CodingTest/Programmers

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

/  제출 1  /

 

def solution(s):
    if len(s) % 2 == 0:
        return s[len(s)//2-1:len(s)//2+1]
    else:
        return s[len(s)//2]
채점 결과
정확성: 100.0
합계: 100.0 / 100.0

 

 

아니.. 이 간단한 구현에서도 짝수일 때 착각해서 인덱스 범위를 실수해 다시 고쳐 제출했습니다.

 

이 인덱스 값에 대해서는 다른 분들이 되게 다양하게 접근하셨던데 재밌어서 많이 살펴봤습니다.

 

다양한 사고를 할 수 있으면 분명 다른 문제에서도 아이디어를 떠올리기 쉬울테니까요.

 


/  다른 분들 코드  /

def string_middle(str):

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

저는 짝수일 경우, 홀수일 경우를 나눠서 했는데 사실 그럴 필요도 없기는 했나봅니다. 인덱스 범위에서 동일 값을 min/max로 설정해도 이상 없이 나올 수 있었습니다.

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)]

왕.. 마지막 슬라이싱에서 max범위를 음수로 해서 뒤에서부터 접근하게 한 것도 저는 떠올리지 못한 생각입니다.

알고 있는 지식도 특정 문제에 떠올릴 수 있느냐에 따라서 활용도가 천차만별인 것 같습니다.

 

그리고 어떤 방법이 더 적절할 지에 대한 근거를 잘 말할 수 있어야할 것 같습니다.