The journey to becoming a developer

My future is created by what I do today, not tomorrow.

Algorithms/Programmers

[프로그래머스 Level 1] 가운데 글자 가져오기 (자바스크립트)

Millie 2021. 10. 17. 20:35

Description

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

Constraints

s는 길이가 1 이상, 100이하인 스트링입니다.

 

My Solutions

(1) String에도 index를 활용할 수 있다는 것을 활용한 풀이

function solution(s) {
  return s.length % 2
    ? s[Math.floor(s.length / 2)]
    : s[s.length / 2 - 1] + s[s.length / 2];
}

문자열은 유사 배열 객체이면서 이터러블이므로 배열과 유사하게 각 문자에 접근할 수 있다.

유사 배열 객체란, 마치 배열처럼 인덱스로 프로퍼티 값에 접근할 수 있고 length 프로퍼티를 갖는 객체를 말한다.

문자열은 원시 값인데, 원시 값을 객체처럼 사용하면 원시값을 감싸는 래퍼 객체로 자동 변환된다.

 

(2) substr 활용

function solution(s) {
  return s.length % 2
    ? s.substr(Math.floor(s.length / 2, 1))
    : s.substr(s.length / 2 - 1, 2);
}

function solution(s) {
  return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 ? 1 : 2);
}

The substr() method returns a portion of the string, starting at the specified index and extending for a given number of characters afterwards.

If length is omitted, substr() extracts characters to the end of the string.

substr() 메서드는 지정된 인덱스에서 시작하여 이후에 지정된 문자 수만큼 확장되는 문자열의 일부를 반환한다.

 

참고자료

JavaScript Deep Dive

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr