Wacky_Life

 

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

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

programmers.co.kr

 

 

문제 설명

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

 

 

제한 사항

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

 

입출력 예

s return
"abcde" "c"
"qwer" "we"

 

 

코드

1
2
3
4
5
6
7
8
def solution(s):
    if len(s) % 2 == 1:
       a = len(s) // 2
        answer = s[int(a)]
    else:
        a = len(s) / 2
        answer = s[int(a-1)] + s[int(a)]
    return answer
cs

 

- 2~4번째 줄 : 입력받은 s의 길이가 홀수일 경우, s의 길이를 2로 나눈 몫을 a에 저장한다.  리스트의 인덱스로는 string이 못들어 가므로 int로 변환 후 이를 s의 index로 넣어서 그 값을 answer에 넣는다. 리스트의 인덱스가 0부터 시작하므로 s의 인덱스 값에 a값을 그대로 넣어도 된다.

 

- 5~7번째 줄 : 입력받은 s의 길이가 짝수인 경우, s의 길이를 2로 나눈 값을 a에 저장한다. 리스트의 인덱스로는 string이 못들어 가므로 int로 변환한 값을 넣는다. 리스트 인덱스가 0부터 시작하므로 s의 길이가 짝수인 경우에는 a와 a 보다 1작은 인덱스를 s의 index로 넣어서 그 값을 answer에 넣는다.

 

 

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

 

인덱스 슬라이싱으로 표현하면 1줄로도 코딩이 가능하다. 입출력 예의 경우를 빌려서 설명하면

- s의 길이가 5인 경우 슬라이싱 결과물이 s[2:3] 이 되므로 가운데 글자인 s[2]를 return 해준다.

- s의 길이가 4인 경우 슬라이싱 결과물이 s[1:3] 이 되므로 s[1]과 s[2]를 return 해준다.

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading