Byeonguk Kim

안녕하세요. 29살의 조금은 늦은 나이로 새롭게 개발자로 시작하는 신입 개발자입니다. 포트폴리오 [https://deaguowl.github.io]

알고리즘 06. 가운데 글자 가져오기

14 May 2019 » Algorithm

2019.05.15

프로그래머스 알고리즘 문제 (lv1)

  • 가운데 글자 가져오기

문제 설명

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

제한사항

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

예시

s	   		return
abcde	 	  c
qwer	 	  we

나의 풀이 방법

의식의 흐름

  1. 일단 s가 짝수인지 홀수 인지 확인한다.
  2. 홀수면 중간에 한개만 뽑는다
  3. 짝수면 가운데 2개를 뽑아낸다.
  4. 찾아낸 것을 return에 넣는다.

컴퓨터에게는?

  1. len(s)를 활용하여 짝수인지 홀수인지 판별
  2. 홀수이면 len(s)//2 를 활용하여 몫값의 인덱스 값을 찾는다.
  3. 짝수이면 len(s)//2 - 1부터 len(s)//2 +1 까지의 인덱스 값을 찾는다.
  4. 뽑아 낸 값을 return에 담는다.

코드


def solution(s):
    answer = ''
    s_len = len(s)
    if s_len % 2 == 0:
        answer=s[(s_len//2-1):(s_len//2+1)]
    else:
        answer=s[s_len//2]
    return answer

solution("power")

  • 조금만 생각해보면 되는 간단한 문제였다.

다른 사람 풀이


def string_middle(str):
    # 함수를 완성하세요

    return str[(len(str)-1)//2:len(str)//2+1]

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(string_middle("power"))

  • 나는 나누어 주고 빼주었는데 여기서는 빼주고 나누어주어서 해당 인덱스를 바로 찾아갈 수 있게 설계하였다.
  • 항상 무언가를 나누어주고 빼주려고 했는데 빼주고 나누어주면 어떻게 되는지 생각을 한번 해보면 좋을 것 같다.