[Programmers] Lv.1 <12903 가운데 글자 가져오기> (python)


문제 설명

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

제한 조건

  • s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

sreturn
"abcde""c"
"qwer""we"
출처: 프로그래머스 코딩테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/12903

나의 코드

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

이 문제는 s의 길이에 따라 출력할 문자열의 index가 결정되므로, s를 적절하게 슬라이싱하면 간단하게 풀리는 문제입니다. 문제가 복잡하지 않기 때문에 단순히 여러 케이스들을 나열해서 패턴을 찾고 코드를 작성하시면 됩니다.

  • s의 길이가 홀수인 경우:
slen(s)첫 index마지막 index
"0"100
"012"311
"01234"522
  • s의 길이가 짝수인 경우:
slen(s)첫 index마지막 index
"01"201
"0123"412
"012345"623

길이가 홀수인 경우에는 시작과 마지막 index가len(s)//2 혹은 (len(s)-1)//2가 될 수 있습니다. 그러나 짝수인 경우까지 고려하면 첫 index는 (len(s)-1)//2로 설정해야 합니다. 마지막 index는 두 경우 모두 len(s)//2입니다.

따라서, s[(len(s) - 1) // 2 : len(s) // 2 + 1]를 반환하면 됩니다.

참고로 ":" 오른쪽에 1을 더한 것은 문자열 slicing의 작동방식 때문이다.

print("01234"[1:3])  # 문자열 12 출력

질문이나 오류 수정은 댓글로 남겨주세요!

좋은 웹페이지 즐겨찾기