알고리즘 연습 - 문자열을 요소로 가지는 배열을 받아 그 요소에서 가장 길고, 짧은 문자열을 제거한 배열을 리턴하는 함수

입력

string 타입을 요소로 가지는 배열(arr)
arr[i].length 는 20 이하
 

출력

배열을 리턴

 

주의 사항

가장 긴 문자열과 가장 짧은 문자열의 길이가 같은 경우는 없다고 가정
가장 긴 문자열이나 가장 짧은 문자열이 다수인 경우 가장 나중에 위치한 문자열을 제거

 

나만의 문제 접근 및 풀이

1.문자열을 비교해서 담을 변수 2개 만들어 두고
2.그 변수에 가장 짧은 문자열, 가장 긴 문자열을 넣는다
3.그 후 기존 배열에서 그 문자열에 해당하는 인덱스를 찾아 그 요소들만 삭제한다
4.삭제하고 남은 배열을 리턴해 준다

function removeExtremes(arr) {
// TODO: 여기에 코드를 작성합니다.

let shortestWord=arr[0];    //1.문자열을 비교해서 담을 변수 2개 만들어 준다
let longestWord=arr[0];
for(let i=0; i<arr.length; i++){
if(arr[i].length<=shortestWord.length){    
shortestWord=arr[i];        // 가장 짧은 문자열을 담는 과정
}else if(arr[i].length>=longestWord.length){
longestWord=arr[i];            // 가장 긴 문자열을 담는 과정
}
}

arr.splice(arr.indexOf(shortestWord),1);    // 가장 짧은 문자열의 인덱스를 찾아 삭제
arr.splice(arr.indexOf(longestWord),1);        // 가장 긴 문자열의 인덱스를 찾아 삭제
return arr;    // 남은 배열을 리턴

}


let output = removeExtremes(['a', 'b', 'c', 'def']);
console.log(output); // --> ['a', 'b']

output = removeExtremes(['where', 'is', 'the', 'longest', 'word']);
console.log(output); // --> ['where', 'the', 'word']
복사했습니다!