자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.
📋 문제
소문자로 된 문자열이 입력되면 그 문자열의 가운데 문자를 출력한다. 단, 문자열의 길이가 짝수일 경우 가운데 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 만큼의 문자들 반환.
📝 풀이
<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>
'Algorithm > JavaScript' 카테고리의 다른 글
[basics] 중복 단어 제거 (0) | 2021.12.06 |
---|---|
[basics] 중복 문자 제거 (0) | 2021.12.06 |
[basics] 대소문자 변환 (0) | 2021.12.06 |
[basics] 가장 긴 문자열 (0) | 2021.12.06 |
[basics] 대문자 통일 (0) | 2021.12.05 |
댓글