2022-01-03 코드워즈 문제풀이.

정종훈·2022년 3월 1일
0

알고리즘 문제풀이

목록 보기
7/10

Q1. List Filtering

In this kata you will create a function that takes a list of non-negative integers and strings and returns a new list with the strings filtered out.

  • 나의 풀이
function filter_list(l) {
  // 새로운 빈 배열 선언 할당
  newArr = [];
  // for of 반복문사용해 만약 요소값의 타입이 숫자면 newArr에 푸쉬해줌
  for (let value of l) {
    if (typeof (value) === 'number' ) {
      newArr.push(value);
    }
  }
  return newArr;
}
  • 다른 풀이
function filter_list(l) {
  return l.filter(function(v) {return typeof v == 'number'})
}
  • 포인트
    넘버타입만 잘 걸러내는 것


  • 새로 배운 것

Array.prototype.filter()

filter()메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]
  • 느낀점

filter() 메서드를 몇번 본적이 있는데 아직까지 익숙치 않다...

참조

Q2.


Implement the function unique_in_order which takes as argument a sequence and returns a list of items without any elements with the same value next to each other and preserving the original order of elements.

  • 나의 풀이
var uniqueInOrder=function(iterable){
  // 빈 배열 선언 할당
  let result = [];
  if (iterable.length === 0) return result;
 
   result.push(  iterable[0] );
  // 문자열에 반복문 사용
  // 1번째 문자 추가
  // 2번째 문자를 보는데 만약 1번째 문자랑 같으면 스킵
  // 안같으면 추가
  for (let i = 1; i < iterable.length; i++) {
   
    if (iterable[i] !== iterable[i - 1]) {
      result.push( iterable[i] );
    }
  }
  // 배열 리턴
  return result;
}
  • 다른 풀이
function uniqueInOrder(it) {
  var result = []
  var last
  
  for (var i = 0; i < it.length; i++) {
    if (it[i] !== last) {
      result.push(last = it[i])
    }
  }
  
  return result
}
  • 포인트
    어떻게 겹친 문자를 쓰게 하지 않을것인가? 새로운 빈 배열을 정하고 계속 푸쉬!

  • 새로 배운 것
    null

  • 느낀점

다른 풀이를 보면서 느낀점은 내가 result = []이거 까지는 잘한것 같은데

for 구문을 i = 1부터 시작 했음.
그러면 i = 0 일때는 어떻게 해야되는지 막 고민해서 결국 땜빵식으로 코드를 작성했음.
근데 다른풀이를 보니까 기가막힌다..

profile
괴발개발자에서 개발자로 향해보자

0개의 댓글