inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

4. 졸업선물

해당 강의 코드에서 16-17번째 줄 코드 질문

270

00

작성한 질문수 28

0

안녕하세요 강의 듣다가 궁금한점이 있어서 질문 드립니다..!

해당 강의 16분 37초 기준으로 16-17번째 줄 코드를 보면

if(j!==i && (product[j][0]+product[j][1])>money) break;

if(j!==i && (product[j][0]+product[j][1])<=money){

이렇게 적으셨는데 break 하는 부분에 꼭 굳이 j!==i 도 적어야하나요 ??

저의 경우

function solution(bud, product) {
  let answer = 0,
    total = product.flat().reduce((prev, curr) => prev + curr);
  product.sort((a, b) => a[0] + a[1] - (b[0] + b[1]));

  for (let i = 0; i < product.length; i++) {
    // 50% 할인 쿠폰 적용할 상품 for 문 돌리기
    let money = bud - (product[i][0] / 2 + product[i][1]); // 사용 가능한 금액
    let cnt = 1; // 할인받은 애는 되니까 1 시작
    for (let j = 0; j < product.length; j++) {
      if (i === j) continue;
      if (money < product[j][0] + product[j][1]) break;
      money -= product[j][0] + product[j][1];
      cnt++;
    }
    answer = Math.max(answer, cnt);
  }
  return answer;
}

이렇게 i===j 를 만나면 continue 로 하고 예산이 넘어갈때만 break 두돌록 했는데 이렇게 잓성해도 괜찮을까요 ?

javascript 코딩-테스트

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
00님, 해당 코드에서 j!==i 조건을 명시하는 것은 현재 할인 쿠폰을 적용할 대상인 제품을 제외하고 나머지 제품들만 검사하기 위함입니다. 쿠폰이 적용된 상품은 이미 예산에서 차감되었기 때문에, 중복 차감을 방지하려는 의도로 보입니다.

00님의 코드는 if (i === j) continue;를 통해 이미 할인 쿠폰이 적용된 상품을 건너뛰고 있고, 이는 제품의 모든 경우를 조건 없이 순회하면서 현재 쿠폰을 적용받을 상품에 대해서만 예외 처리를 하는 방법입니다.

결론적으로 00님의 코드도 명시적으로 쿠폰이 적용된 항목을 건너뛰어 처리하고 있으므로, 주어진 문제 조건에 맞게 잘 동작한다면 이 방법으로도 충분히 괜찮습니다.

만약 더 자세한 설명이 필요하시다면, 해당 강의의 ‘수강 전 문의 게시판’을 활용하거나, 직접 강사님께 문의해보시는 것도 좋은 방법일 것입니다.

강의에 대해 더 궁금한 점이 있다면 언제든지 문의해 주세요. 감사합니다.

continue를 사용하는 이유

0

79

2

정렬 가능 여부 판단하기

0

64

2

알고리즘 학습법 관련해서 질문드립니다.

0

86

1

코드 리뷰 부탁드립니다!

0

90

1

indexOf를 사용해서 풀어보았습니다 !!

0

68

1

저는 이런식으로 구현 해보았습니다 !!

0

64

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

100

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

63

1

영상 보기 전에 직접 풀어봤습니다.

0

74

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

135

2

정규표현식으로 처리해도 상관없나요 ?

0

120

2

3칸씩 건너뛸 수 있을 경우

0

125

2

강의에 대해 질문있습니다.

0

135

2

Object와 Set을 이용해 풀어봤습니다.

0

117

2

이렇게 해도 되나요?

0

102

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

145

2

이렇게 풀어도 괜찮을까요?

0

138

1

이렇게 풀어도 괜찮을까요?

0

112

1

모든 아나그램 찾기에서 시간복잡도

0

98

1

코드리뷰 부탁드립니다.

0

130

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

133

1

투포인트알고리즘으로 풀어봤습니다.

0

142

0

코드 리뷰 부탁드립니다.

0

120

1

코드 맞게 작성한 거 아닌가여??

0

146

1