알림
본 포스팅은 공부 목적으로 작성된 글이며 상업적 목적으로 절대 사용되지 않았음을 밝힙니다.
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12903
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
코드
function solution(s) {
return s.length % 2 !== 0
? s[Math.floor(s.length / 2)]
: s.slice(s.length / 2 - 1, s.length / 2 + 1)
}
풀이
배열의 개수가 짝수인지 홀수인지 판별하는 게 우선 순위입니다.
배열의 개수가 2로 나눴을 때 나머지가 0이 아니라면 홀수일 거고, 0이라면 짝수일 텐데요.
조건문을 활용하여 짝수와 홀수를 판별하고, 홀수라면 배열의 길이를 2로 나눠주며, 같거나 작은 수 중 가장 큰 정수를 반환하는 Math.floor에 담아 소숫점 이하는 버려주도록 합니다.
예를 들어 배열의 개수가 5개면, 배열의 인덱스 번호가 2인 애가 문제에서 찾는 가운데 글자일 텐데요.
5 / 2 = 2.5이고, Math.floor(2.5)는 2를 반환할 테니 홀수일 땐 다음과 같이 결과값을 도출할 수 있습니다.
반대로 짝수일 때는 가운데 문자를 구할 수 없기 때문에 가운데 양 옆으로 두 개의 문자를 구해야 하는데요.
이럴 땐 slice 함수를 사용하면 됩니다.
slice 함수는 다음과 같이 사용이 가능한데요.
var arr = [0, 1, 2, 3, 4, 5];
return arr.slice(1, 4);
// [1, 2, 3]
따라서 배열을 2로 나눴을 때, 그 자리에서 왼쪽으로 한 칸부터, 오른쪽으로 한 칸까지 리턴하면 됩니다.
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 문자열 내림차순으로 배치하기(JavaScript) (0) | 2022.07.27 |
---|---|
[Programmers] 약수의 개수와 덧셈(JavaScript) (0) | 2022.07.27 |
[Programmers] 서울에서 김서방 찾기(JavaScript) (0) | 2022.07.26 |
[Programmers] 음양 더하기(JavaScript) (0) | 2022.07.26 |
[Programmers] 부족한 금액 계산하기(JavaScript) (0) | 2022.07.26 |
댓글