인프런 커뮤니티 질문&답변

이승민님의 프로필 이미지
이승민

작성한 질문수

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

섹션4 K번째 큰 수

작성

·

170

0

강의에서 for문을 돌리실 때
for(let i=0; i<n; i++){ for(let j=i+1; j<n; j++){
for(let k=j+1; k<n; k++){ tmp.add(card[i]+card[j]+card[k]); } } }

j = i+1, k = j + 1 로 하게 되면 범위가 모든 숫자의 합의 경우의 수가 안나오지 않나요???

예를 들어 입력 예제를 봤을 때

13 15 34 23 45 65 33 11 26 42 인 경우

13+13+13 같은 경우의 수는 빼고 값을 구하는 건데 문제에선 같은 숫자의 카드가 여러개 있을 수 있다고 되있어서요.

설명 한번만 해주시면 감사하겠습니다ㅠㅠ

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네. 맞습니다. 조합을 뽑아내는 거니까  j=i+1 k=j+1로 하면 됩니다. 

같은 숫자의 카드가 여러개 있다면 입력이 13, 15, 13, 13, 34, 23 과 같이 13이 여러번 등장한다는 것입니다. 즉 

이 입력에서는 13+13+13 도 가능하다입니다.

이승민님의 프로필 이미지
이승민

작성한 질문수

질문하기