본문 바로가기

ETC

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

반응형

https://programmers.co.kr/learn/courses/30/lessons/12903

 

코딩테스트 연습 - 가운데 글자 가져오기

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret

programmers.co.kr

인덱싱과 슬라이싱 문제이다.

슬라이싱은 [i:i]이면 []을 리턴함을 주의한다.

인덱스에서 //2 를 하면 항상 내림을 하기 때문에.. 홀수의 경우 가운데, 짝수일 경우 가운데의 뒤를 가져온다. 

5 -> 2 (01'2'34) 4 -> 2 (01'2'3)

 

따라서 해당 해설에서 뒤는 +1을 해주었으니 홀수의 경우 가운데, 짝수의 경우 문자 중심의 뒤까지 가져올 것이다.

앞은 어떻게 가져올까? 홀수의 경우 //2를 하면 가운데를 가져온다.

 

그런데 홀수의 경우 -1을 하나 안하나 몫이 차이가 없다.

짝수의 경우 -1을 하면 인덱스가 한칸 앞으로 간다. (몫이 하나 감소한다.)

 

따라서 홀수의 경우는 가운데 : 가운데+1이므로 하나의 값을 가져오게 되고

짝수의 경우는 문자중심앞 : 문자중심뒤+1 상태의 인덱스가 되므로 문자중심앞[2] 문자중심뒤[3] 이렇게 가져온다.

 

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