2019.05.15
프로그래머스 알고리즘 문제 (lv1)
- 가운데 글자 가져오기
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
예시
s return
abcde c
qwer we
나의 풀이 방법
의식의 흐름
- 일단 s가 짝수인지 홀수 인지 확인한다.
- 홀수면 중간에 한개만 뽑는다
- 짝수면 가운데 2개를 뽑아낸다.
- 찾아낸 것을 return에 넣는다.
컴퓨터에게는?
- len(s)를 활용하여 짝수인지 홀수인지 판별
- 홀수이면 len(s)//2 를 활용하여 몫값의 인덱스 값을 찾는다.
- 짝수이면 len(s)//2 - 1부터 len(s)//2 +1 까지의 인덱스 값을 찾는다.
- 뽑아 낸 값을 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"))
- 나는 나누어 주고 빼주었는데 여기서는 빼주고 나누어주어서 해당 인덱스를 바로 찾아갈 수 있게 설계하였다.
- 항상 무언가를 나누어주고 빼주려고 했는데 빼주고 나누어주면 어떻게 되는지 생각을 한번 해보면 좋을 것 같다.