• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

코드 확인 부탁드립니다.

23.05.17 05:28 작성 23.05.17 05:29 수정 조회수 149

0


      function solution(m, product) {
        let answer = 0;
        let n = product.length;
        let cnt = 0;

        product.sort((a, b) => a[0] / 2 + a[1] - (b[0] / 2 + b[1]));
        // console.log(product);
        for (let i = 0; i < n; i++) {
          m = m - (product[i][0] / 2 + product[i][1]);
          cnt++;
          //console.log("cnt", cnt);
          if (product[i][0] + product[i][1] > m) break;
          answer = cnt;
        }
        return answer;
      }

//콘솔에서는 cnt가 4로 나왔는데 답에서 3으로 출력이 됩니다. 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

for (let i = 0; i < n; i++) {
    m = m - (product[i][0] / 2 + product[i][1]);
    cnt++;
    answer = cnt;
    //console.log("cnt", cnt);
    if (product[i][0] + product[i][1] > m) break;
    
  }

위와 같이 answr = cnt 위치를 옮기면 answer = 4가 되겠지만 이 코드는 올바른 정답코드가 아닙니다.

위에 for(let i = 0; i < n; i++) 반복문 안쪽에서 m = m - (product[i][0] / 2 + product[i]\[1]); 코드 라인을 하고 나서 for(let j = 0; j < n; j++) 반복문이 돌아야 합니다.

전체적으로 이중 for문이어야 모든 입력 케이스에서 올바른 답이 나옵니다. 영상을 다시 시청하셨으면 좋겠습니다.

 

 

답변 감사합니다. 다시 한번 풀어보겠습니다:)