매일 매일 한 문제라도 알고리즘 문제를 풀어보자! ㅎㅎ
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
let str = "qwer";
function solution(s){
let stringLength = s.length;
if(stringLength % 2 === 0){
s = s[stringLength/2-1] + s[stringLength/2];
}else{
let idx = Math.floor(stringLength/2);
s = s[idx];
}
return s;
}
console.log(solution(str));
str 배열내 텍스트의 길이가 홀수인지 / 짝수인지를 확인한다.
짝수라면 텍스트의 length/2-1 + length/2 두개를 뽑아 텍스트를 수정해준다.
홀수라면 Math.floor
메서드를 사용해 가운데 값을 뽑아준다.
프로그래머스에서 제시한 테스트케이스는 모두 통과했으나,,
알고리즘 능력자분들의 코드를 확인해보자 .. ㅎㅎ
function solution(s) {
const mid = Math.floor(s.length/2);
return s.length %2 === 1 ? s[mid] : s[mid-1]+s[mid];
}
가운데 값을 꺼냄에 있어서, 텍스트 길이가 짝수이든 홀수이든 그냥 내림 처리 해줘도 상관없잖아!?
삼항연산자로 return 해주면 되는걸 왜 생각 못했담!?