728x90
반응형
문제
Write a function called "findShortestWordAmongMixedElements". ("findShortestWordAmongMixedElements" 함수를 작성하세요.)
Given an array, "findShortestWordAmongMixedElements" returns the shortest string within the given array. (배열이 주어졌을때, "findShortestWordAmongMixedElements" 함수는 주어진 배열에서 가장 짧은 문자열을 반환합니다.)
Notes:
- If there are ties, it should return the first element to appear in the given array.
(만약 동률이 있다면, 배열의 앞쪽에 있는 요소를 반환해야 합니다.) - Expect the given array to have values other than strings.
(주어진 배열에는 문자열 외에 다른 값들이 있을 수 있습니다.) - If the given array is empty, it should return an empty string.
(만약 빈배열이 주어졌다면, 빈 문자열을 반환해야 합니다.) - If the given array contains no strings, it should return an empty string.
(만약 주어진 배열에 문자열이 없다면, 빈 문자열을 반환해야 합니다.)
let output = findShortestWordAmongMixedElements([4, 'two', 2, 'three']);
console.log(output); // --> 'two'
나의 풀이
function findShortestWordAmongMixedElements(arr) {
let result = '';
let check = 0;
for(let i = 0; i < arr.length ; i++){
if(typeof(arr[i])=='string'){
if( check===0 || check > arr[i].length ){
check = arr[i].length;
result = arr[i];
}
}
}
return result;
}
모델 솔루션
function findShortestWordAmongMixedElements(arr) {
if (arr.length === 0) {
return ''
}
return arr.reduce((acc, cur) => {
if (typeof acc !== 'string') {
if (typeof cur === 'string') {
return cur
}
return ''
}
if (typeof cur === 'string') {
if (cur.length < acc.length) {
return cur
}
return acc
}
return acc
})
}
다른 방식으로 해결하였으나, reduce가 아직 생소하여 복습이 필수적일 문제.
반응형
'알고리즘' 카테고리의 다른 글
[JS] 자료구조 - 코드 구현 전체 (0) | 2019.11.27 |
---|---|
복잡도 분석, 시간복잡도 (0) | 2019.11.18 |
[JS] _.shuffle 구현 (0) | 2019.11.17 |
[JS] 알파벳을 숫자로 변환하는법 (0) | 2019.09.30 |
[JS] 만일 reduce를 잊는다면 일어나는일 (0) | 2019.09.30 |