101 클래스 코테 결과

악음·2021년 11월 17일
0

알고리즘

목록 보기
2/4
// 로어케이스와 어퍼케이스의 알파뱃이 같이 들어있는 알파뱃중 가장 큰 아스키코드를 가지고있는 것
//WeTestCodErs 이와같은 배열일경우 T가 리턴된다.
const bigString = (string) => {
  let bigString = 0;

  for (let i = 0; i < string.length; i++) {
    let matchUpperCase = string.match(new RegExp(string[i].toUpperCase()));
    let matchLowwerCase = string.match(new RegExp(string[i].toLowerCase()));
    if (matchUpperCase && matchLowwerCase) {
      if (string[i].charCodeAt() <= 96 && string[i].charCodeAt() > bigString) {
        bigString = string[i];
      }
    }
  }
  return bigString === 0 ? "NO" : bigString;
};

console.log(bigString("WeTestCodErs"));
const { invert } = require("./invert");

// 서로 합이 같은 숫자끼리의 합중 제일 큰값

let a = [53, 71, 18, 90];
// 5+3=8, 7+1=8, 1+8=9, 9+0=9
//자기 자신끼리의 합이 같은 index끼리 합친다.
// 53+71= 124
// 18+90=108
// 반환값은 124이다.
const pareSumMAx = (A) => {
  let sumAs = [];
  let eachSum = [];
  let samSums = [];
  let temporaryArray = [];
  let Sums = -1;
  for (let i = 0; i < a.length; i++) {
    eachSum = A[i]
      .toString()
      .split("")
      .map((item) => parseInt(item));

    eachSum = eachSum.reduce((acc, cur) => acc + cur, 0);
    sumAs.push(eachSum);
  }

  for (let i = 0; i < sumAs.length; i++) {
    if (samSums.indexOf(sumAs[i]) === -1) {
      samSums.push(sumAs[i]);
    }
  }

  for (let i = 0; i < samSums.length; i++) {
    for (let a = 0; a < sumAs.length; a++) {
      if (samSums[i] === sumAs[a]) {
        temporaryArray.push(A[a]);
      }
    }

    if (temporaryArray.length > 1) {
      let sum = temporaryArray.reduce((acc, cur) => acc + cur, 0);
      if (sum > Sums) Sums = sum;
    }

    temporaryArray = [];
  }
  console.log(Sums);
};
pareSumMAx(a);

기능구현에 치중한 코드들이다 코드들을 좀더 깔끔하고 아름답고 빠르게 하는방법은 아직모른다
클래스101에 우연히 서류합격이 되었고 코딩테스트까지 갔지만 역시나 준비가 되어있지 않아 결국 마지막 문제는 못풀었다(2번째문제)이 경험을 발판삼아..좀더 발전해야겠다..

profile
RN/react.js개발자이며 배운것들을 제가 보기위해서 정리하기 때문에 비속어 오타가 있을수있습니다.

0개의 댓글