inflearn logo
강의

講義

知識共有

JavaScriptアルゴリズムベスト10

3番。出席者選定(ソート) - 2

3번 출정인원 선발

329

woojinchoi4915

投稿した質問数 11

0

3번 출정 인원 선발의 아래 코드에서 질문이 있습니다.

if문의 첫 번째 조건에서, 선발된 인원이 2명, 선발해야 하는 인원이 4명, i[1].length가 3일 경우에 조건을 통과하여 선발인원에 push가 되는데, 남은 자리가 2개여서 3명이 추가되면 안되니까 조건이 잘못된 것이 아닌가요??

그래서 선발해야하는 인원과 선발된 인원의 차이를 고려하여 첫 번째 조건의 && 뒷부분 조건이 아래 코드블럭처럼 되어야 하는게 아닐지 궁금합니다.

 

제가 잘못 생각했다면 어느 지점이 잘못된 것일지도 궁금합니다 감사합니다!

i[1].length <= 선발해야하는인원 - 선발된 인원

 

javascript 코딩-테스트 알고리즘

回答 2

0

The Oreum

수강생분의 정답이 맞는 답입니다!
선발해야하는 인원은 실시간으로 변하기때문에 해당 부분을 적용해야 했네요!
좋은 질문 감사합니다 강의노트에 해당 부분 반영하도록 하겠습니다. 너무 감사합니다 :)
----
질문주신분의 예외를 적용한 테스트케이스를 만들어서 진행했습니다.

const data = [['A', 25, 25, 26, 25], ['B', 25, 25, 27, 25], ['C', 25, 28, 25, 25], ['D', 25, 25, 29, 25],['E', 25, 25, 25, 25], ['F', 25, 28, 25, 25], ['G', 25, 25, 20, 25]]

이때 상위 30%면 2명을 뽑아야합니다.

104:[D]
103:[C,F]
102:[B]
....생략...

점수계산을 하고나면 이렇게 나오는데 동점자가 있는경우 제외이기때문에 C,F는 빠지고 D와 B가 나와야합니다.

처음 반복에서 D가 들어갑니다.

두번째 반복에서 D가 이미 있어서 1개만 추가될 수 있지만 조건문인선발된인원 < 선발해야하는인원 && i[1].length <= 선발해야하는인원 이부분 에는 최초 선발해야하는 인원이 고정이기때문에 길이가 2이상인 값도 모두 들어가게 됩니다. 이로인해 이미 배열에 1개가 추가되어있고 1개만 들어갈 수 있는 상황에서 2개가 들어가네요.

이때문에 C,F가 들어가 예상되는 답인 D,B가 아닌 F,C,D 가 출력됩니다.
해당 예외를 적용하기위해
선발된인원 < 선발해야하는인원 && i[1].length <= 선발해야하는인원 - 선발된인원 과 같은 조건을 주는것이 맞겠네요!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

님의 질문에 대한 답변을 드릴게요.

문제 상황에 따라, i[1].length <= 선발해야하는인원 - 선발된 인원 조건을 적용하는 것이 맞습니다. 님이 이해하신 부분은 올바르게 파악하셨어요. 선발해야 하는 인원과 이미 선발된 인원의 차이를 고려하지 않는다면, 선발 인원 수를 초과하여 더 많은 인원을 선발할 수 있는 상황이 발생할 수 있습니다. 따라서, 선발 과정에서 i[1].length가 선발해야 하는 인원과 선발된 인원의 차이보다 작거나 같아야 한다는 조건은 중요한 로직으로 보입니다.

즉, 제공해주신 코드 조건에 따르면, 선발해야 하는 인원과 현재까지 선발된 인원의 차이를 고려하여 추가 인원을 선발할 수 있는지를 판단해야 합니다. 이렇게 조건을 설정함으로써 올바르게 인원을 선발할 수 있습니다.

질문에 제공된 코드와 상황 설명을 바탕으로, 님의 이해와 접근 방식이 맞으며, 이 조건을 통해 의도한 바와 같이 인원 선발 로직이 올바르게 동작할 것입니다.

추가적인 질문이 있으시면 언제든지 문의해 주세요. 도움이 되었길 바랍니다!

Context API vs Zustand 그리고 Auth

0

17

2

백준 서비스 종료로 인한 강의 자료 업데이트 요청드립니다.

0

21

1

순수 함수 / 순수 컴포넌트

0

15

1

백준 사이트 준비중이라 문제를 볼 수 가 없어요

0

15

1

css box-sizing 관련 질문

0

28

2

스니펫이 이상해요

0

26

2

코딩살구클럽 가입부탁드립니다

0

24

2

Editor Component의 최적화 불가능 이슈

0

37

2

코딩살구클럽 가입 요청 확인부탁드립니다

0

30

2

useCallback ⊂ useMemo

0

33

2

깃허브 저장소를 어디에 첨부하셨나요?

1

37

1

nestjs 강의는 없나요??

1

36

2

스타터 저장소

1

39

1

What is Rxjs

0

26

1

학습방법과 방향성을 잡아주시면 감사하겠습니다.

0

68

1

4번 꿈의설계 정렬 시 동일값에 대한 제약 질문

0

99

1

6번 샌드위치 문제

0

112

0

4번 꿈의 설계

0

275

2

강의 깃헙 주소

0

335

2

문제 1번 관련

0

237

2

서비스에서 run javascript

0

327

2

github 해당 레포는 priveate이라서 접근이 안됩니다.

0

442

2

문제 풀이

0

460

2

github에 해당 레포를 찾을 수가 없어요.

0

386

2