알고리즘 연습 - 문자열을 요소로 가지는 배열을 받아 그 요소에서 가장 길고, 짧은 문자열을 제거한 배열을 리턴하는 함수
입력
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']
'알고리즘 연습' 카테고리의 다른 글
보드의 칸 채우기 문제 (0) | 2021.10.15 |
---|---|
버블(거품) 정렬 알고리즘 (0) | 2021.10.13 |
알고리즘 연습 - 연속된 홀수 문자열 사이에 특정 문자 추가 (0) | 2021.09.16 |
알고리즘 연습 - 2차원 배열의 요소로 만든 객체를 리턴하는 함수 구현 (0) | 2021.09.15 |
알고리즘 연습 - 각 단어 첫글자만 대문자가 되게 하는 함수 (0) | 2021.09.15 |