항해 프로그래머스
항해3주차 자바스크립트 프로그래머스 - 가운데 글자 가져오기
완두노예
2023. 1. 27. 13:29
나의 풀이
문자열의 길이가 홀수일 때 2로 나누면 나눈 값은 소숫점이 될 것이다.
그러므로 나눈 값에 Math.floor()메서드를 사용해 반내림을 해주어야 한다.
반올림이 아닌 반내림을 하는 이유는 인덱스는 0부터 시작하기 때문이다.
function solution(s) {
var answer = '';
if (s.length % 2 == 0 ) { // 짝수일 경우,
answer = s[s.length / 2 - 1] + s[s.length / 2];
} else {
answer = s[Math.floor(s.length/2)]; // 홀수일 경우, 반내림 하기
}
return answer;
}
//단어 길이가 홀수일때 가운데 1자리만 반환
//단어 길이가 짝수일때 가운데 2자리만 반환
//if 단어길이 % 2 != 0
//return 가운데 1자리 반환
//else return 가운데 2자리 반환
다른 풀이
substr
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
function solution(s) {
const mid = Math.floor(s.length/2);
return s.length %2 === 1 ? s[mid] : s[mid-1]+s[mid];
}
function solution(s) {
return s.length % 2 == 0 ? s.substr(s.length / 2 - 1, 2) : s.substr(Math.floor(s.length / 2), 1);
}
console.log(solution("abcde"));
console.log(solution("abcdefgh"));
answer += s.slice(length/2, length/2 +1);
function solution(s) {
var length = s.length;
var answer = '';
if(!(s.length >0 && s.length<100)) {
return;
}
if(length % 2 != 0) {
answer += s.slice(length/2, length/2 +1);
}else {
answer += s.slice(length/2 -1, length/2 +1);
}
return answer;
}
var s = 'qwerty';
console.log(solution(s));
const solution = s => {
return s.length % 2 ?
s[parseInt(s.length/2)] :
s.substr(s.length/2-1, 2);
}
answer = s[length/2-0.5] // 홀수
function solution(s) {
var answer = '';
var length = s.length;
if(length % 2 == 0){
answer = s[length/2-1] + s[length/2]
}else{
answer = s[length/2-0.5]
}
return answer;
}
function solution(s) {
let i = (s.length-1)/2;
return i%1 ? (s[i-0.5] + s[i+0.5]) : s[i];
}
function solution(s) {
var answer = '';
var s_len=s.length;
if(s_len%2==0){
for(var i=s_len/2-1;i<=s_len/2;i++){
answer+=s[i];
}
}
else
answer=s[(s_len-1)/2];
return answer;
}