알고리즘_가운데 글자 가져오기
8882 단어 알고리즘JavaScriptJavaScript
가운데 글자 가져오기
1.문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
2.재한사항
s는 길이가 1 이상, 100이하인 스트링입니다.
3.입출력 예
s | return |
---|---|
"abcde" | "c" |
"qwer" | "we" |
4. 나의 문제 풀이
1. s의 length가 짝수인지 홀수 인지 구별
2. 짝수이면 slice()를 이용하여 가운데 두 글자 반환
3. 홀수이면 Math.floor() 이용하여 가운데 글자 반환
4. 삼항연산자 사용
function solution(s) {
var answer = '';
let half = Math.floor(s.length / 2);
return (s.length % 2 === 0)? s.slice(half-1,half+1):s[half]
}
- s % 2 === 0 으로 홀,짝 구분을 했다.
- s가 짝수 일때,
"asdf" 가운데 두 글자를 slice를 이용해서 sd를 잘라내려고 한다.
index 1,2 가 필요
s.length / 2 값을 이용해서 index를 가지고 왔다.
slice는 두번째 인자로 들어오는 index 앞의 숫자까지 반환하는 특징이 있다.
slice에 넣어 줄 1번 인자를 s.length의 절반값에서 -1, 2번 인자는 s.length의 절반값에서 +1 해주어 적용 해 줬다.
slice(s.length /2 -1,s.length+1)
- slice()
// index 범위 지정
'abcdef'.slice(1,3) // bc
[1,2,3,4,5,6].slice(1,3) // [ 2, 3 ]
// -index를 이용한 경우
'abcdef'.slice(-4) // cdef
[1,2,3,4,5,6].slice(-4) // [ 3, 4, 5, 6 ]
- 참고 링크
slice()
- s가 홀수 일때.
s.length / 2를 하게 되면 소숫점이 나오기 때문에 자연수로 변경해줘야 했다.
ex) 5 / 2 = 2.5
길이가 5이면 index 2가 필요 하기 때문에 내림한 숫자가 필요하다.
Math.floor()를 사용하여 내림 값을 주었다.
- Math.floor()
파라미터에들어간 숫자를 내림한 결과값을 반환해주는 매서드 입니다.
// 내림
Math.floor(1) // 1
Math.floor(1.3) // 1
Math.floor(1.8) // 1
// 올림
Math.ceil(1) // 1
Math.ceil(1.3) // 2
Math.ceil(1.8) // 2
// 반올림
Math.round(1) // 1
Math.round(1.3) // 1
Math.round(1.8) // 2
Author And Source
이 문제에 관하여(알고리즘_가운데 글자 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@coco1606/알고리즘가운데-글자-가져오기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)