프로그래머스 가운데 글자 가져오기 자바스크립트

2022. 1. 15. 12:21코딩공부/JavaScript 알고리즘

문제

 

초기 코드

function solution(s) {
    var answer = '';
    return answer;
}

 

문제 풀이

function solution(s) {
    var answer = '';
    if(s.length % 2 ===0){ // s의 길이가 짝수일때
        answer = answer.concat(s[s.length/2 -1])
        answer = answer.concat(s[s.length/2]); 
        // concat() 함수로 가운데 문자를 배열로 리턴해준다
        // 리턴한다.
    }else{
        answer = answer.concat(s[Math.floor(s.length/2)]);
        // 연산 결과가 소수점이 있으니까 Math.floor()함수를 사용하여 소수점 이하를 버림한다
    }
    return answer;
}


console.log(solution("abcdefg")); //d
console.log(solution("abcdefgh")); //de

 

다른 풀이

const solution = s => {
    return s.length % 2 ? 
        s[parseInt(s.length/2)] :
        s.substr(s.length/2-1, 2);
}

 

문법 정리

 

1. concat() 함수

array.concat([value1[, value2[, ...[, valueN]]]])

concat() 함수는 파라미터로 받은 배열이나 값들을 기존의 배열에 합쳐서, 새로운 배열을 만들어서 리턴한다.

 

https://hianna.tistory.com/397

 

[Javascript] 배열 합치기 3가지 방법

지난번에는 배열의 앞, 뒤, 중간에 값을 추가하는 방법을 알아보았습니다. [Javascript] 배열 앞, 뒤에 값 추가, 삭제하기 (1) [Javascript] 배열 중간에 값 추가, 삭제하기 (2) - splice() 함수 이번에는 두

hianna.tistory.com

 

2. Math.floor() 함수

Math.floor() : 소수점 이하를 버림한다.
Math.ceil() : 소수점 이하를 올림한다.
Math.round() : 소수점 이하를 반올림한다.

 

3. .substr() 함수

문자열 자르기 함수

- substr("시작위치", "길이") 또는 substr("시작 위치")

시작 위치부터 해당 길이만큼 문자열을 잘라준다. 길이를 생략하면 시작위치부터 문자열 끝까지 자른다.

- substring("시작위치", "종료위치") 또는 substring("시작 위치")

시작 위치에서 종료위치까지 문자열을 자른다. 주의할 점은 종료 위치의 -1까지 문자열을 자른다.

- slice("시작위치","종료위치") 또는 slice("시작위치")

기본적인 사용법은 substring() 함수와 동일하며, 다른 점은 음수를 자유롭게 사용할 수 있어서 뒤에서부터 문자열을 자를때 유용하게 사용할 수 있다.

 

https://gent.tistory.com/414

 

[JavaScript] 문자열 자르기 (substr, substring, slice)

자바스크립트에서 문자열을 자르기 위해서는 substr(), substring(), slice() 함수를 사용하면 된다. 문자열을 뒤에서부터 자르기 위해서는 slice() 함수를 사용하면 효율적이며 타 언어의 Right 함수와 비

gent.tistory.com