문제설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
풀이
-
글자수가 홀수일 경우와 짝수인 경우를 나눈다.
if(length % 2 !== 0){
// 홀수일 경우
} else {
// 짝수일 경우
}
2. 가운데 글자의 인덱스를 구한다.
-
글자수가 홀수일 경우
'abcde' 에서 가운데 글자는 3번째 글자인 'c'이지만 index는 2이다. length 5를 2로 나누면 2.5가 되고 내림을 해주면 2가 되면서 index랑 같아진다. -
글자수가 짝수일 경우
'qwer' 에서 가운데 글자는 2번째와 3번째 글자인 'w','e' 이고, index는 1, 2 이다. length 4를 2로 나누면 2가 되면 3번째 글자의 인덱스가 나오고 1을 빼주면 2번째 글자의 index와 같아진다.
const index = Math.floor(s.length / 2);
3. index에 맞는 글자를 반환해 주는 메소드
- 처음에 생각한 메소드는 charAt() 였는데, 홀수일 때는 상관 없지만, 짝수일 때는 문자열을 2개를 반환해야 하기 때문에 실패!
- '자바스크립트 string 메소드'를 검색해서 문자열을 추출해주는 메소드를 찾았다.
- String.slice(startIndex, endIndex)
- 첫 번째 인자로 전달된 startIndex부터 시작하여 두 번째 인자로 전달된 endIndex앞까지의 새 문자열을 반환
- 매개변수가 음수이면 문자열 끝에서부터 계산된다.
** endIndex의 문자는 포함되지 않는다. - String.substring(startIndex, endIndex)
- slice()와 비슷하지만 음수를 허용하지 않는다.
** endIndex의 문자는 포함되지 않는다.
function solution(s) {
const index = Math.floor(s.length / 2);
if(s.length % 2 !== 0){
return s.substring(index, index + 1);
} else {
return s.substring(index - 1,index + 1);
}
}
- String.substr(startIndex, 문자개수)
- startIndex부터 시작해서 두 번째 인자로 넘겨준 문자 개수만큼 문자열을 반환해 준다.
- 첫 번째 매개 변수가 음수이면 문자 끝에서부터 계산된다.
**startIndex의 문자는 문자개수에 포함된다.
function solution(s) {
const index = Math.floor(s.length / 2);
if(s.length % 2 !== 0){
return s.substr(index, 1);
} else {
return s.substr(index - 1, 2);
}
}
'코딩테스트' 카테고리의 다른 글
Level1_비밀지도 (0) | 2020.09.03 |
---|---|
Level1_가장 큰 수 (0) | 2020.08.31 |
Level1_K번째 수 (0) | 2020.06.16 |
Level1_완주하지 못한 선수 (0) | 2020.06.09 |
Level1_약수의 합 (0) | 2020.06.09 |