findShort.js (7kyu 05)

Codewars 알고리즘 풀이


Problem

  • Given a string of words, return the length of the shortest word(s).
    • 주어진 단어의 문자열에서, 가장 짧은 단어의 길이를 반환한다.


Solution 01

function findShort(str) {
  let arr = str.split(' ');
  let min = arr[0];
  
  for (let i = 1; i < arr.length; i++) {
    if (arr[i].length < min.length) {
      min = arr[i];
    }
  }
  return min.length;
}

findShort('abcd e fghi');  // 1
findShort('ab cde fghi');  // 2
  • split(): 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.


Solution 02

function findShort(str) {
  let arr = str.split(' ').sort((a, b) => a.length - b.length);
  return arr[0].length;
}

findShort('abcd e fghi');  // 1
findShort('ab cde fghi');  // 2
  • sort(): 배열의 element를 정렬한 후, 그 배열을 반환한다.


Solution 03

function findShort(str) {
  return str.split(' ').sort((a, b) => a.length - b.length)[0].length;
}

findShort('abcd e fghi');  // 1
findShort('ab cde fghi');  // 2


Solution 04

function findShort(str) {
  return str.split(' ').sort((a, b) => b.length - a.length).pop().length;
}

findShort('abcd e fghi');  // 1
findShort('ab cde fghi');  // 2
  • pop(): 배열의 마지막 element를 제거하고, 그 element를 반환한다.


Solution 05

function findShort(str) {
  return Math.min(...str.split(' ').map(i => i.length));
}

findShort('abcd e fghi');  // 1
findShort('ab cde fghi');  // 2
  • Math.min(): 값이 가장 작은 수를 반환한다.
  • map(): 배열 내 모든 element에 대해, 호출한 함수의 결과를 모아 새 배열로 반환한다.