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문을 사용하지 않고도 하나의 식으로 해결했음
'프로그래머스,백준 > 알고리즘' 카테고리의 다른 글
[프로그래머스] Level1 - 2016년 (Python) (0) | 2020.10.25 |
---|---|
[프로그래머스] Level1 - 문자열 내 p와 y의 개수 (Python) (0) | 2020.10.25 |
[프로그래머스] Level1 - 핸드폰 번호 가리기 (Python) (0) | 2020.10.25 |
[프로그래머스] Level1 - 체육복 (Python) (0) | 2020.10.23 |
[프로그래머스] Level2 - 타겟 넘버 (0) | 2020.10.23 |
댓글