[basics] 가운데 문자 출력
자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.
📋 문제
소문자로 된 문자열이 입력되면 그 문자열의 가운데 문자를 출력한다. 단, 문자열의 길이가 짝수일 경우 가운데 2개의 문자를 출력한다.
👉 입력
길이가 100을 넘지 않는 문자열이 입력된다.
👈 출력
문자열의 가운데 문자를 출력한다.
💡 사용된 개념
String.substring()
string 객체의 시작 인덱스로부터 종료 인덱스 전까지의 부분 문자열을 반환한다.
str.substring(indexStart[, indexEnd])
- indexStart : 반환할 문자열의 시작 인덱스
- indexEnd : 옵션. 반환할 문자열의 마지막 인덱스(포함하지 않는다.)
String.substr()
문자열의 특정 위치에서 시작하여 특정 문자 수만큼의 문자들을 반환한다.
str.substr(start [, length])
- start : 추출하고자 하는 문자들의 시작 위치. 음수면 (문자열의 길이 + start)의 값으로 설정.
- length: 옵션. 추출할 문자들의 숫자.
String.substring(a, b)는 a 인덱스에서부터 b 인덱스 전까지의 문자열 반환
String.substr(a, b)은 a 인덱스에서부터 b 만큼의 문자들 반환.
String.substring()
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substring
String.prototype.substring() - JavaScript | MDN
substring() 메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.
developer.mozilla.org
String.substr()
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substr
📝 풀이
<script>
function solution(s) {
let answer = "";
if (s.length % 2) answer = s[Math.floor(s.length / 2)];
else answer = s[s.length / 2 - 1] + s[s.length / 2];
return answer;
}
console.log(solution("study"));
</script>
문자열을 받아 문자열의 길이가 홀수이면 문자열 길이의 절반에 해당하는 인덱스에 있는 문자를, 짝수이면 문자열 길이의 절반에 해당하는 인덱스의 앞 문자와 해당 인덱스의 문자를 출력하도록 했다.
s.length / 2 가 많이 사용되니 따로 변수처리 하는 것이 좀 더 깔끔할 것 같다.
String.substring() ver.
<script>
function solution(s) {
let answer = "";
let mid = Math.floor(s.length / 2);
if (s.length % 2) answer = s.substring(mid, mid + 1);
else answer = s.substring(mid - 1, mid + 1);
return answer;
}
console.log(solution("study"));
</script>
String.substr() ver.
<script>
function solution(s) {
let answer = "";
let mid = Math.floor(s.length / 2);
if (s.length % 2) answer = s.substr(mid, 1);
else answer = s.substr(mid - 1, 2);
return answer;
}
console.log(solution("good"));
</script>