Lv1. 가운데 글자 가져오기 ( Python )
# 문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
# 제한 사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
# 입출력 예
s | Return |
---|---|
“abcde” | “c” |
“qwer” | “we” |
문제 해결 시 고려사항
- 홀/짝 구분 및 문자열 슬라이싱
본 문제는 단어 s가 주어지면 해당 단어의 가운데 글자를 가져오는 문제이다. 이 문제에서 고려할 사항은 크게 두 가지이다. 홀수와 짝수경우를 나누어 처리 해주는 것과 가운데 글자가 2글자인 경우에서의 문자열 반환이다. 우선 홀수/짝수 검사를 위해 아래와 같이 s의 길이를 닮은 length를 선언하였다.
# 입력된 s의 길이를 저장(홀수, 짝수 검사를 위함) length = len(s)
이 후, 단어의 길이가 홀수이면, 가장 중앙의 인덱스에 위치한 단 하나의 문자만을 반환하여주면 된다. 단어의 길이가 짝수이면, 가운데에 위치한 글자는 두 글자이다. 따라서 해당 인덱스 구간을 계산하여보면 시작 인덱스는 length//2 -1이고, 끝 인덱스는 legnth//2임을 알 수 있다. 해당 인덱스 구간의 문자열을 슬라이싱하여 아래와 같이 반환하여 준다.
# s의 길이가 홀수이면, 인덱스를 2로 나눈 위치(나머지 버림)의 문자 반환 if length % 2 == 1: answer = s[length//2] # s의 길이가 짝수이면, (인덱스를 2로 나눈 위치-1)부터 인덱스를 2로 나눈 위치까지의 문자열 반환 else: answer = s[length//2-1:length//2+1]
전체 코드
def solution(s):
answer = ''
# 입력된 s의 길이를 저장(홀수, 짝수 검사를 위함)
length = len(s)
# s의 길이가 홀수이면, 인덱스를 2로 나눈 위치(나머지 버림)의 문자 반환
if length % 2 == 1:
answer = s[length//2]
# s의 길이가 짝수이면, (인덱스를 2로 나눈 위치-1)부터 인덱스를 2로 나눈 위치까지의 문자열 반환
else:
answer = s[length//2-1:length//2+1]
return answer