단어 s의 가운데 글자를 반환하는 함수 구현하기
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
s | return |
"abcde" | "c" |
"qwer" | "we" |
s
의 길이를 구한다. ⇒ s.length
function solution(s) {
var answer = '';
let sLength = s.length
let startIndex = sLength / 2
answer = sLength % 2 === 0 ? s.substring(startIndex-1, startIndex+1) : s.substring(startIndex, startIndex +1);
return answer;
}
function solution(s) {
const midIndex = Math.floor(s.length / 2);
return s.length % 2 === 0 ? s.substring(midIndex - 1, midIndex + 1) : s[midIndex];
}
sLength
변수를 제거하고, 필요한 곳에서 s.length
를 직접 사용해서 코드가 더 간결해졌다.
startIndex
변수 대신 midIndex
를 사용하고, 이를 바로 계산에 활용해서 코드의 가독성을 향상시켰다.
substring
대신 단순 인덱싱을 사용하면 substring
메서드 호출보다 간결하고, 의미가 명확하다.
def solution(s):
mid_index = len(s) // 2
return s[mid_index -1: mid_index+1] if len(s) % 2 == 0 else s[mid_index]
Python
은 정수 나누기에 //
를 사용한다. 이는 JavaScript에서 Math.floor()
를 사용하는 것과 동일하다.
s[start:end]
가 사용되는데, 이는 JavaScript의 s.substring(start, end)
와 매우 유사하다.
def solution(s):
return s[(len(s)-1)//2: len(s)//2 + 1]
(len(s)-1)//2
는 슬라이스의 시작 인덱스를 계산한다. 홀수 길이 문자열의 경우, 이 수식은 중간 문자로 반내림됩니다. 짝수 길이 문자열의 경우 중간 두 문자 앞의 문자로 반내림된다.
len(s)//2 + 1
은 슬라이스의 종료 인덱스를 계산한다. 이는 슬라이스가 이 인덱스의 문자를 포함하지 않음을 의미한다. 홀수 길이 문자열의 경우 중간 문자만 포함된다. 짝수 길이 문자열의 경우 중간 두 문자가 포함된다.