• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

이렇게 풀어봤는데 괜찮을까요?

24.07.01 18:58 작성 조회수 23

0

function App() {
  const solve = (m ,arr) => { 
    let answer = 0;
    let n = arr.length;
    arr.sort((a,b) => (a[0] + a[1]) - (b[0] + b[1]));

    // 50% 쿠폰, 상품

    for (let i = 0; i < n; i++) {
      let money = m - (arr[i][0] - arr[i][1]);
      let cnt = 1;
      for (let j = 0; j < n; j++) {
        if (j === i) {
          continue;
        }
        money = money - (arr[j][0] + arr[j][1])
        if (money > 0) {
          cnt ++;
        }
      }
      if (answer < cnt) {
        answer = cnt
      }
    }
    return answer
  }

  const arr = [[6,6],[2,2],[4,3],[4,5],[10,3]]

답변 1

답변을 작성해보세요.

0

hollis9797님의 프로필

hollis9797

질문자

2024.07.01

j === i 를 같을 때를 그냥 continue 로 넘겨버렸습니다.
해서 뺀다음에 값이 0을 넘을때만 cnt 값을 증가시켜,
마지막 조건 에서 answer 값을 return 했습니다.

채널톡 아이콘