2020.코딩일지

[코플릿]Algorithm Basic-11_removeExtremes 본문

algorithm

[코플릿]Algorithm Basic-11_removeExtremes

개발하는라푼젤 2022. 8. 7. 15:29
728x90

문자열을 요소로 갖는 배열을 입력받아 가장 짧은 문자열과 가장 긴 문자열을 제거한 배열을 리턴해야 합니다.

 

입출력예시

더보기
  • 가장 짧은 문자열의 길이와 가장 긴 문자열의 길이가 같은 경우는 없습니다.
  • 가장 짧은 문자열 또는 가장 긴 문자열이 다수일 경우, 나중에 위치한 문자열을 제거합니다
//입출력예시
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',]

 

👻하

 

function removeExtremes(arr) {
  let sLen = 20;
  let longLen = 0;
  let sIdx = 0;
  let longIdx = 0;
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].length >= longLen) {
      longLen = arr[i].length;//7 'longest'
      longIdx = i;//3
    }
    if (arr[i].length <= sLen) {
      sLen = arr[i].length;//2 'is'
      sIdx = i;//1
    }
  }
  let result = [];
  for (let i = 0; i < arr.length; i++) {
    if (i !== sIdx && i !== longIdx) {//최종뽑은 인덱스만 아니면 push해드립니다.
      result.push(arr[i]);
    }
  }
  return result;

 

Comments