스파르타코딩클럽 내일배움캠프 TIL11

한재창·2022년 11월 14일
0

코딩테스트

  • 삼각형 만들기
    • 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
    • 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return
function solution(sides) {
      let arr = sides.sort((a,b) => a-b)
      if (arr[0] + arr[1] > arr[2]) {
          return 1
      } else {
          return 2
      }
}
       
// 오름차순으로 정렬한다.
// index[0] + index[1] > index[2] 의 조건을 만들어 주고 참이면 1 아니며 2 리턴
  • 할인 가격 계산하기
    • 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 지불해야 할 금액을 return
function solution(price) {
    if (price < 100000) return price
    else if (price >= 100000 && price < 300000) {
        return Math.floor(price - price * 0.05)
    } else if (price >= 300000 && price < 500000) {
        return Math.floor(price - price * 0.1)
    } else if (price >= 500000) {
        return Math.floor(price - price * 0.2)
    }
}

// if문 활용, 순서대로 코드가 실행되므로 논리 연산자를 써야함
// 조건에 맞게 price(원래 가격) - price * %(할인 가격) 해줘서 리턴
  • 배열의 유사도
    • 두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return
      • filter : true 값만을 반환하여 새로운 배열로 반환한다.
        기본적으로 순차적으로 값을 접근한다라는 개념을 내포하고 있기 때문에 for문이 가진 순회를 별다른 코드를 작성하지 않고도 사용할 수 있다.
      • includes : 문자열이 특정 문자열을 포함하는지 확인한다.
function solution(s1, s2) {
  // s1 배열에 있는 원소들의 문자열이 s2 배열에 있는 문자열과 일치하는 값만 arr배열에 저장
    const arr = s1.filter(x=>s2.includes(x))
    return arr.length
}

// 배열의 교집합을 찾아고 새로운 변수에 저장
// 변수의 길이를 리턴해준다.
// filter 예시
const numbers = [1,2,3,4,5];

numbers.filter((number, index, source) => {

    // number: 요소값
    // index: source에서 요소의 index
    // source: 순회하는 대상

    console.log(number);
    // 1,2,3,4,5

    console.log(index);
    // 0,1,2,3,4

    console.log(source);
    // [1,2,3,4,5]

    return number > 3;
    // [4,5]
});
  • 제곱수 판별하기
    • 어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return
      • math.sqrt : 특정숫자의 제곱근 값을 계산해준다.
function solution(n) {
    return parseInt(Math.sqrt(n)) === Math.sqrt(n) ? 1 : 2
}

 // 제곱근 값이 떨어지지 않으면 소수점 이하 자리가 생긴다.
 // 제곱근 값이 떨어졌을 때와 그렇지 않을 때 소수점 자리를 버림하여 일치하면 1을 반환, 아니라면 2를 반환한다.
  • 배열 두배 만들기
    • 정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return
      • reduce : 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환
function solution(numbers) {
    return numbers.reduce((a, b) => [...a, b * 2], []);
}

// a = [] 시작하는데, ...a = 아무 값이 없다.
// 아무값이 없는 ...a에다가 1*2를 해줘서 ...a=2를 만들어주고 []감싸주면 [...a = 2]가 된다.
// 이렇게 누적해서 끝까지 함수가 실행되면 [2,4,6,8,10]이 된다!
profile
취준 개발자

0개의 댓글

관련 채용 정보