230210 프로그래머스 시소 짝꿍(해결중)

샨티(shanti)·2023년 2월 9일
0

코딩테스트

목록 보기
33/35
post-custom-banner

매일 매일 하루 한 문제씩.
꾸준히 이어가는 코딩테스트 풀이 기록 ✅

오늘도 기록용 시간초과 코드.
주말에 해결해야 할 코딩테스트가 산더미이구나~ 하하.


문제 링크

시소 짝꿍


JavaScript

자바스크립트로도 버거워서 며칠 째 자바는 손도 못대고 있는 것 같다.
안그래도 자바 까먹는 것 때문에 좀 스트레스 받고 있는데...
그렇다고 하루 몇시간동안 코테를 잡고 있을 수도 없으므로!!!!

후.. 속상한 마음이지만 우선 고 한다.

며칠 째 계속 풀어내지 못하는 것 때문에 마음이 많이 꺾여있는데 그래도 어떻게든 해봐야겠다는 생각에 당연히 시간초과가 날 것 같아도 우선 되는 코드를 만들어보려 했다. 17개 케이스 중에 6개 정도 시간 초과가 난 코드.

// 시간 초과 코드(6개 테스트 통과 못함)

function solution(weights) {
  let answer = 0;
  const sortedArray = weights.sort((a, b) => a - b);

  for (let i = 0; i < sortedArray.length; i += 1) {
    const current = sortedArray[i];
    const next = sortedArray[i + 1];

    if (!next) {
      break;
    }

    for (let j = i + 1; j < sortedArray.length; j += 1) {
      if (current * 2 === sortedArray[j] * 2) {
        answer += 1;
        continue;
      }

      if (current * 2 === sortedArray[j] * 3) {
        answer += 1;
        continue;
      }

      if (current * 2 === sortedArray[j] * 4) {
        answer += 1;
        continue;
      }

      if (current * 3 === sortedArray[j] * 2) {
        answer += 1;
        continue;
      }

      if (current * 3 === sortedArray[j] * 3) {
        answer += 1;
        continue;
      }

      if (current * 3 === sortedArray[j] * 4) {
        answer += 1;
        continue;
      }

      if (current * 4 === sortedArray[j] * 2) {
        answer += 1;
        continue;
      }

      if (current * 4 === sortedArray[j] * 3) {
        answer += 1;
        continue;
      }

      if (current * 4 === sortedArray[j] * 4) {
        answer += 1;
      }
    }
  }

  return answer;
}

정말 말 그대로 모든 케이스들을 다 조건문으로 걸러주었다.
이렇게라도 한번은... 풀어내고 싶었던 마음이랄까..ㅋㅋㅋㅋ 후.

알고리즘 책이나 주문하려 가련다..

profile
가벼운 사진, 그렇지 못한 글
post-custom-banner

0개의 댓글