Lv. 1 - 가운데 글자 가져오기 풀이과정
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution
을 만들어 보세요! 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
arr | return |
---|---|
“abcde” | “c” |
“qwer” | “we” |
문제 풀이
const solution = s => {
const center = Math.floor(s.length / 2);
if(s.length % 2 === 0) {
return s.slice(center - 1, center + 1)
}else{
return s[center];
}
}
함수 선언
- 화살표 함수를 사용하여
s
를 매개변수로 받는다.
풀이
- 먼저 가운데 글자를 가져오기 위해 소수점을 제외한 길이/2 값을
center
변수에 할당 -
if
문을 사용하여 짝수인지 홀수인지 판별함 - 짝수일 경우 가운데 두 글자를 가져오기 위해 매개변수로 받은
s
에slice
를 사용하여 (start, end) 가운데 두 글자를 리턴함 - 홀수일 경우 가운데 글자를 리턴함
결과 반환
-
s = "abcde"
대입하면 가운데 글자임 “c”를 리턴함 -
s = "qwer"
대입하면 가운데 두글자인 “we”를 리턴함
실행
-
solution("abcde")
실행하면 “c” 출력 -
solution("qwer")
실행하면 “we” 출력
다른 사람의 풀이 참고
이번 문제는 스파르타 코딩클럽 알고리즘 풀이 과정에서도 나온 문제이다. 가운데 글자를 구하기 위해 length/2와 짝수일때 홀수일때를 고려해 문제를 풀어봤고 더 베스트인 코드는 없다 생각했지만 역시 고수는 많다..
// [156명] substr 함수와 Math 함수를 사용한 풀이 과정
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
링크
- 문제 링크: 문제 링크
- Git: rarrit github
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges