프로그래머스 : 가운데 글자 가져오기
문자열의 가운데 인덱스값을 구해 출력하는 문제입니다.
문제 설명
문제 적기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
s | 결과 |
---|---|
"abcde" | "c" |
"qwer" | "we" |
1. 해설
소스보기
function solution(s) {
if(s.length % 2 == 1){
return s.slice(Math.floor(s.length/2), Math.floor(s.length/2)+1);
} else {
return s.slice(s.length/2 - 1, s.length/2 + 1);
}
}
가운데 인덱스를 구하기 위해선 length 메서드를 사용해 문자열의 총 길이를 알아야 합니다.
이때 나오는 소수값은 소숫점을 버려 정수값을 취하는 Math.floor 메서드를 사용할 수 있습니다.
그 다음은 인덱스 값으로 문자열을 반환하는 메서드를 사용하면 출력이 완료됩니다. 저는 여기서 slice( ) 메서드를 사용했습니다.
※ 올림/반올림/버림 메서드
숫자의 소숫점을 처리해 정수값으로 만드는 메서드입니다.
Math.ceil(int) : 올림하여 정수값을 반환합니다.
Math.round(int) : 반올림하여 정수값을 반환합니다.
Math.floor(int) : 버림하여 정수값을 반환합니다.
2. 다른 풀이
소스보기
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
위의 풀이법을 삼항연산자를 써서 더욱 짧고 간결하게 표현한 방식입니다.
삼항연산자를 사용하면 이런식으로 보기 좋게 코드를 작성할 수 있습니다.
댓글