[Programmers] Lv.1 <12903 가운데 글자 가져오기> (python)
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한 조건
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
s | return |
---|---|
"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의 길이가 홀수인 경우:
s | len(s) | 첫 index | 마지막 index |
---|---|---|---|
"0" | 1 | 0 | 0 |
"012" | 3 | 1 | 1 |
"01234" | 5 | 2 | 2 |
- s의 길이가 짝수인 경우:
s | len(s) | 첫 index | 마지막 index |
---|---|---|---|
"01" | 2 | 0 | 1 |
"0123" | 4 | 1 | 2 |
"012345" | 6 | 2 | 3 |
길이가 홀수인 경우에는 시작과 마지막 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 출력
질문이나 오류 수정은 댓글로 남겨주세요!
Author And Source
이 문제에 관하여([Programmers] Lv.1 <12903 가운데 글자 가져오기> (python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yeminjin/Programmers-Lv.1-12903-가운데-글자-가져오기-python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)