본문 바로가기
프로그래머스,백준/알고리즘

[프로그래머스] Level1 - 가운데 글자 가져오기 (Python)

by z.1nee 2020. 10. 25.
SMALL

문제 설명

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

재한사항

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

입출력 예

s return
abcde c
qwer we

알고리즘

1. 리스트 길이의 중앙값은 (길이 + 1)/2 이므로 // 연산자로 몫을 저장함

2. 리스트의 길이가 짝수라면 중앙값 부터 중앙값 + 1 까지 슬라이싱 ( 인덱스는 0부터 시작하기 때문에  시작 인덱스는 -1 하고, 슬라이싱 시 끝 인덱스는 포함하지 않으므로 +1)

3. 리스트의 길이가 홀수라면 중앙값만 리턴 (인덱스는 0부터 시작하기 때문에 -1)

 

 

필요 함수 정리

최대값

- 슬라이싱

- // 연산자 (몫)

 

 

 

내 소스 코드

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

 

결과 

 

 

다른 사람 소스 코드

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

알고리즘은 유사하지만

answers 리스트 길이가 홀수일 경우

len(answers)-1 // 2 와 len(answers) //2 +1 의 차가 2이므로 중앙 인덱스 값만 출력되고

answers 리스트 길이가 짝수일 경우

len(answers)-1 // 2 와 len(answers) //2 +1 의 차가 3이므로 중앙 인덱스 값과 +1 인덱스 까지 출력되므로

if문을 사용하지 않고도 하나의 식으로 해결했음

 

 

 

 

 

댓글