본문 바로가기
2. 우당탕탕 개발자/2-1. 공부기록

2021.7.28 TIL (중복문자 제거, 배열 큰 수 출력)

by Little Monkey 2021. 7. 28.
반응형

문제) 소문자로 이뤄진 단어에서 중복 단어를 제거하여 문자 순으로 출력

예시) 'hahojajo' -> 'haoj'

 

function findDuplicates(str) {
  let answer;
  // code here;
  return answer;
}

 

 

해답) indexOf 이용

: indexOf(string) 매소드는 string이 포함된 첫번째 인덱스를 리턴.

 

function findDuplicates(str) {
  let answer = '';
  
  for(let i = 0; i < str.length; i++) {
    if(str.indexOf(str[i]) === i) {
      answer += str[i]
    }
  };
  
  return answer;
}

 

 

다른 해답) includes 이용

 

function findDuplicates(str) {
  let answer = '';
  let arr = [];
  
  for(let el of str) {
    if(!arr.includes(el)) {
      answer += el;
      arr.push(el)
    }
  };
  
  return answer;
}

 

 

 


 

 

문제) 중복된 단어가 포함된 배열이 주어질 때, 중복된 단어를 제외한 배열을 리턴

 

function removeDuplicate(arr) {
  let answer;
  // code here;
  return answer;
}

 

 

해답) indexOf 이용

 

function removeDuplicate(arr) {
  let answer;
  
  answer = arr.filter((el, i) => arr.indexOf(el) === i ? true : false);
  
  return answer;
}

 

 

해답2) includes 이용

 

function removeDuplicate(arr) {
  let answer = [];
  
  arr.forEach((el, i) => {
    !answer.includes(el) ? answer.push(el) : null
  });
  
  return answer;
}

 

 

 


 

문제) 숫자 배열이 주어질 때, 바로 직전의 숫자보다 크면 남기고, 아니면 제거하기

예시) [7,3,9,5,8,12] => [7,9,8,12]

 

function solution(numbers) {
  let answer;
  // code here;
  return answer;
}

 

 

해답)

 

function solution(numbers) {
  let answer;
  answer = numbers.filter((num, i) => {
    if(i === 0) {
      return true;
    } else {
      if(num > numbers[i - 1]) {
        retrun true;
      } else {
        return false;
      }
    }
  })
  return answer;
}

 

 

해답)

 

function solution(numbers) {
  let answer = [numbers[0]];
  for(let i = 1; i < numbers.length; i++) {
    numbers[i] > numbers[i-1] ? answer.push(numbers[i]) : null
  }
  return answer;
}

 

반응형

댓글