문자열을 입력받아 가운데에 위치한 문자를 출력한다.
(길이가 홀수일 경우, 1개
짝수일 경우, 2개를 출력)
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(s){
// 짝수일경우, parseInt()-1 번 인덱스 추가
// 홀수일 경우, parseInt() 인덱스만
let answer ='',middle=parseInt(s.length/2);
if(s.length%2 ===0){
answer +=s[middle-1]+s[middle];
}else{
answer += s[middle];
}
return answer;
}
console.log(solution("study"));
</script>
</body>
</html>
우선 parseInt(s.length/2)를 통해 중간위치 인덱스값을 찾아준다.
parseInt()의 경우 소숫점 이하자리는 버리고 정수를 반환한다.
❗️(Math.floor() 바닥함수로 대체 가능)
입력받은 문자열이 홀수일 경우, 가운데 위치하는 문자는 1개이다.
짝수일 경우, 두개이다. (이 경우, middle index -1 위치의 요소를 추가해준다)
"tomato" 단어의 경우 middle index = 3이며, middle index-1 = 2 이다.
따라서 2,3 번째 인덱스인 "ma"를 반환할 수 있게 된다.
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(s){
let answer, middle=Math.floor(s.length/2);
if(s.length%2 ===0){
answer =s.substring(middle-1,middle+1);
}else{
answer =s.substring(middle,middle+1);
}
return answer;
}
console.log(solution("study"));
</script>
</body>
</html>
위 코드는 좀 더 직관적으로 바꾼 것이다.
기존 parseInt() 함수를 Math.floor () 바닥함수로 변경해 주었고,
answer +=s[middle-1]+s[middle] 로 문자하나하나씩 더해준 것을
substring()함수를 통해서 간소화 하였다.