jyamethyst21 님의 블로그

프로그래머스 - '가운데 글자 가져오기' (PYTHON 풀이) 본문

CODING 💻

프로그래머스 - '가운데 글자 가져오기' (PYTHON 풀이)

jyamethyst21 2026. 4. 30. 00:19

문제:

 

단어를 입력받고, 그 단어의 가운데 글자를 반환하는 함수를 작성하면 된다.

단어의 길이가 짝수면 가운데 두글자를 반환해야 한다.

 

풀이:

def solution(s):
    string_len = len(s)
    if string_len % 2 != 0:
        result = s[int(string_len/2)]
    else:
        result = s[int(string_len/2)-1:int(string_len/2)+1]
    return result

먼저 문자열의 길이를 구한 뒤 string_len에 대입하였다. 문자열의 길이를 알아야 가운데 글자 한 개만 추출할지, 두 글자를 추출할지 결정할 수 있기 때문이다.

이후 문자열의 길이가 2로 나눠 떨어지지 않는다면 즉, 홀수라면 문자열의 길이를 2로 나눈 몫에(소수점 버림) 해당하는 자리를 인덱싱으로 출력하면 된다. (문자열의 가운데는 절반으로 나누어야 확인할 수 있기 때문에 2로 나눔)

 

또한, 문자열의 길이가 짝수라면(else 조건 부분) 홀수일 때와 마찬가지로 길이/2의 몫에서(소수점 버림) -1을 뺀 부분부터 그 다음 글자까지 (int(string_len/2)+1) 부분) 슬라이싱을 하면 가운데 글자 두 개를 추출할 수 있게 된다.

 

예를 들어 문자열이 'abcdef'라면 문자열의 길이는 6, 이를 2로 나눈 몫은 3이 된다. 그럼 인덱싱 기준 3은 'd'이기 때문에 -1을 해야 원하는 가운데 글자 중 첫번째인 'c'를 추출할 수 있다. 그리고 종료 조건은 +1을 해주어야 해당하는 부분까지 출력이 가능하므로 최종적으로 'cd'가 될 것이다.