[알고리즘] 가운데 글자 가져오기

TheJang·2020년 10월 27일
0

알고리즘

목록 보기
1/10
post-thumbnail

요즘 알고리즘을 너어어무 손 놓고 있어서 프로그래머스 레벨 1부터 차근히 풀어보려한다.

알고리즘을 풀면서 메소드 정리와 핵심 풀이를 수도 코드로 정리해야겠다😆😆

가운데 글자 가져오기

abcde에서는 c를 가져오고 qwer에서는 we 두 글자를 가져오는 문제입니다.


풀이 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() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.
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

profile
어제보다 오늘 더 노력하는 프론트엔드 개발자

0개의 댓글