inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기

타입이 동점일 때 처리 방법

320

sdcpdpd1

작성한 질문수 2

1

안녕하세요, 우선 좋은 강의 감사합니다.

다름이 아니라 결과 알고리즘에서 만약 두가지 타입이 동점(ex. 호랑이 6, 쥐 6)일 때, 앞쪽에 있는 타입을 출력시키는 형태잖아요?

그런데 동점일 때 아예 다른 타입의 결과(ex. 고양이)를 출력시키고 싶습니다. 이럴 경우 어떤 식으로 코드를 좀 바꿔주면 될지 궁금합니다. 

function calResult(){

  console.log(select);

  var result = select.indexOf(Math.max(...select));

  return result;

}

이 부분에서 if문을 넣어준다던가... 어떻게 해야 할지 갈피가 안잡혀서 질문 드립니다.

bootstrap javascript HTML/CSS

답변 3

4

판다코딩

const endPoint = 12;
const select = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
const samePoint = 12;

function calResult(){
  let sortArray = select.sort((a,b) => {
    if(a > b){
      return -1;
    }if(a < b){
      return 1;
    }
    return 0;
  })
  if(sortArray[0] === sortArray[1]){
    return samePoint;
  } else {
    var result = select.indexOf(Math.max(...select));
    return result;
  }
}

이렇게 코딩해볼 수 있을 것 같습니다.

조금 더 생각해보면 보다 효율적이고 간결하게 코딩할 수 있을 것 같은데...!

지금 당장 떠올릴 수 있는 방법 중 가장 빠른 방법은 이 방법인 것 같습니다.

먼저, 12개의 type이 있다고 가정할 때 사용하게 될 배열의 인덱스의 최대값은 11입니다.

따라서 samePoint라는 변수를 만들고 그 변수에 12를 저장함으로써,

같은 값이 나왔을 때 12를 리턴하고자 합니다.

sortArray라는 배열은 select배열을 오름차순으로 정렬하여 생성합니다.

그리고 sortArray의 `0`번째 인덱스의 값과 `1`번째 인덱스 값이 같다면 동점이 발생한 것입니다.

따라서 사전에 정의해두었던 samePoint를 리턴하고,

그렇지 않은 경우에는 기존과 동일한 코드를 사용하면 될 것 같습니다.

1

최민준

저도 궁금하네요 동점이면 결과 페이지에 둘 다 써넣어보고 싶네요

0

판다코딩

동점이면 둘 다 페이지에 출력하는 것은 쉽습니다.

저희가 sorting한 array의 첫번째 인덱스와 두번째 인덱스의 값이 같을 때,

두번째 인덱스를 위한 공간을 createElement로 만들어주어서 할당하면 됩니다.

다만, 이 경우에는 결과를 공유할 때 어떤 페이지를 보여줄 것인지 고민이 필요하거나

공유하는 방식을 바꾸어야 할 것 같습니다.

0

판다코딩

안녕하세요!
말씀해주신 사안만으로는 어떤 퍼포먼스를 원하시는지 파악하기 어렵습니다.

만약 동점이 발생한다면,

동점인 두 항목을 제외하고 다른 결과를 보여주시길 원하시는 건가요?

그렇다면, 어떤 항목이 동점일 때 어떤 항목을 보여줄 것인지 미리 정해야 할 것 같습니다.

0

sdcpdpd1

안녕하세요!

호랑이와 쥐가 동점일 때는 쥐가 앞쪽(쥐는 0번째 인덱스. 호랑이는 2번째 인덱스)에 있으니 쥐를 결과로 리턴시켜주는 형태인데,

이 때 쥐도 호랑이도 아니고 아예 다른 타입의 결과인 고양이(cat,  12번째 인덱스에 새로 만든 결과)를 보여주길 원합니다!

0

판다코딩

한 가지만 더 여쭤봐야 될 것 같습니다.

동점일 때, 타입의 조합마다 새로운 타입을 보여줘야 하는 경우일까요?

아니면 동점인 결과가 나왔을 때만 보여줄 항목이 하나로 정해져있는 걸까요?

0

sdcpdpd1

후자입니다!

emmet 에디터 설치 하려고 하는데 안 나오네요

0

154

2

결과 이미지랑 글이 안떠요 왜일까요

0

132

1

select 배열 이해를 도와주세요!

0

366

1

result 에서 결과가 안 나와요.

0

365

1

결과 계산하기에서 콘솔이 다르게 찍힙니다.

0

388

1

다음 버튼을 누르면 다음질문으로 넘어가게 만들고 싶어요.

0

375

1

클론코딩 시

0

367

1

결과페이지 선택값 합산하기

0

351

1

select 부분이 이해가 안가서 질문드립니다 ㅠ

0

383

1

index에서 result 페이지로 이동 질문드립니다.

0

430

1

진행바 강의에서요 스테이터스바가 짤립니다

0

377

1

이미지버전에서 부트스트랩 이미지하고 텍스트도 이용하고 싶어요

0

508

1

viewport 가 제대로 작동을 안해요 뭐가 문제일까요?

0

481

1

결과 페이지별 개별링크버튼 추가

0

352

1

뒤로가기

0

421

1

netlify not found 오류

1

1051

1

아톰 에디터 설치

2

934

1

display:block을 사용하는 이유

1

448

1

qIdx수에 따라 for 문이 돌아요 ㅜ.ㅜ

1

373

1

카카오톡 공유하기

1

579

1

질문 개수 5개에 결과 4개

0

421

1

질문 수를 줄이는 방법

1

387

1

강의 순서

1

263

1

결과페이지에서 result-0,1,23,....html 호출하기

1

351

1