문제 :
문자열을 요소로 갖는 배열을 입력받아 가장 짧은 문자열과
가장 긴 문자열을 제거한 배열을 리턴
입력 :
- string 타입을 요소로 갖는 배열
- arr[i].length는 20 이하
출력 :
- 배열을 리턴해야 합니다.
주의사항 :
- 가장 짧은 문자열의 길이와 가장 긴 문자열의 길이가 같은 경우는 없습니다.
- 가장 짧은 문자열 또는 가장 긴 문자열이 다수일 경우, 나중에 위치한 문자열을 제거합니다.
입출력 예시 :
풀이 :
나만의 해설:
배열을 리턴해야하기 때문에 빈배열을 먼저 선언해준다.
그리고 가장 긴문자열의 길이(longestLen),
가장 짧은문자열의 길이(shortLen),
가장 긴문자열의 Idx(longestIdx),
가장 짧은문자열의 Idx(shortestIdx)를
각각 초기화를 해준다.
여기서 shortLen은 입력에
arr[i].length 는 20이하라고 되어있으므로 20으로 초기화해준다.
그 다음은 for 반복문을 돌면서
현재의 문자열의 길이와 지금까지의 문자열 중
가장 길었던것, 짧았던 것들과 비교하면서
현재의 문자열이 더 길거나 짧으면
각각 longestLen, shortestLen에 넣어준다.
그리고 위에 들어간 Idx도 각각 빼내어
위의 가장 긴 문자열, 가장 짧은 문자열을 제외하고
result에 push를 해줌으로써
가장 긴문자열, 가장 짧은 문자열을 제외하고 result에 들어가게된다.