[アルゴリズム]の中間文字を入力


最近はアルゴリズムが多すぎるので、プログラマーレベル1から段階的に問題を解決しようとしています.
アルゴリズムを解くときは,メソッドの定理とコア解を首都コードに整理する.😆😆

中間文字を入力


abcdeはcをもたらし、qwerはweの2文字をもたらす.

풀이 1)

function solution(s) {
    let arr = s.split("");
    let result = [];
    
    for(let i =0 ; i < arr.length; i++){
        if(arr.length % 2 === 0){
         result.push(arr[Math.ceil(arr.length/2)-1])
            result.push(arr[Math.ceil(arr.length/2)]);
           return result.join("");
        }
        if(arr.length % 2 === 1){
           return arr[Math.ceil(arr.length/2)-1];
        }
    }
}

풀이 2)

const solution= (s) => {
    let result= [];
    let odd;
    let arr = s.split('');
    
    // 홀수 일 경우 
    if(arr.length % 2 !== 0) {
        odd = Math.ceil(arr.length / 2) - 1 ;
        result.push(arr[odd]);
        return result.join('');
    }
    // 짝수 일 경우 두 글자 반환 
    else{
        for(let i = (arr.length / 2) - 1 ; i <= arr.length / 2; i++) {
            result.push(arr[i]);
        }
    }
    return result.join('');
}

풀이 3)

function solution(s) {
  return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
  
}
  • String.prototype.split():文字列を配列として表すことができます.文字列を分割して配列関数を使用する場合は、主にそれを使用します.
  • const str = 'The quick brown fox jumps over the lazy dog.';
    
    const words = str.split(' ');
    console.log(words[3]);
    // expected output: "fox"
    
    const chars = str.split('');
    console.log(chars[8]);
    // expected output: "k"
    
    const strCopy = str.split();
    console.log(strCopy);
    // expected output: Array ["The quick brown fox jumps over the lazy dog."]
    
  • Array.prototype.join():配列を文字列として表すために使用します.
    MDN説明:join()メソッドは、配列内のすべての要素を1つの文字列に接続します.
  • const elements = ['Fire', 'Air', 'Water'];
    
    console.log(elements.join());
    // expected output: "Fire,Air,Water"
    
    console.log(elements.join(''));
    // expected output: "FireAirWater"
    
    console.log(elements.join('-'));
    // expected output: "Fire-Air-Water"
    
  • String.prototype.substr():文字列に範囲を指定して、戻るときに使用します.
  • substr()におけるstr.substr(start[,length])の構文に注意してください.substr(a,b) aは、開始インデックスであり、開始インデックスの長さであると考えられる.
    const str = 'Mozilla';
    
    console.log(str.substr(1, 2));
    // expected output: "oz"
    
    console.log(str.substr(2));
    // expected output: "zilla"
    
    
  • Math.Ceil():指定された数値をアップロードするために使用されます.
  • Math.ceil(.95);    // 1
    Math.ceil(4);      // 4
    Math.ceil(7.004);  // 8
    Math.ceil(-0.95);  // -0
    Math.ceil(-4);     // -4
    Math.ceil(-7.004); // -7

    Reference

  • https://programmers.co.kr/learn/courses/30/lessons/12903
  • https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/split
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/join
  • https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil
  • https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substr