논곰 2020. 9. 9. 16:49

0. 문제

링크) https://programmers.co.kr/learn/courses/30/lessons/12903

 

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

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

programmers.co.kr


1. 알고리즘 계획

  1. 홀수일 때 true 짝수일때 false로 나누어 연산 실행
  2. 홀수일 때는 '리스트 슬라이싱'을 이용해서 단어 반환

2. 나의 코드

def solution(s):
    return s[int(len(s)/2)] if len(s) % 2 else s[int(len(s)/2)-1:int(len(s)/2)+1]

- 리스트 컴프리핸션 이용

3. 다른 사람의 코드

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

- 나눗셈의 몫을 활용한 풀이

- s의 길이가 홀수 (5)일 경우 2:3이 되어, s[2]의 문자 출력

- s의 길이가 짝수 (6)일 경우 2:4가 되어, s[2], s[3]의 문자 출력


4. 정리 및 리뷰

- 스스로도 한 줄로 줄인 코드에 만족하긴 하였으나 다른 사람의 코드의 간결함을 보고 별을 하나 깎음


코드 만족도: ★★★★☆