
https://programmers.co.kr/learn/courses/30/lessons/77484
- 민우 동생이 로또에 낙서를해서 로또 번호 확인을 못한다고 한다.
 - 입력에는 0이 포함되는데 0은 어떤 숫자도 될 수 있다 (조커카드)
 - 만약 0이 다른수가 될 때 최고순위와 최저순위를 출력하면 된다.
 
입력: lottos, win_nums가 매개변수로 입력된다.
- lottos:
 
- 6자리 배열
 - 0 ~ 45의 정수가 입력됨
 - 0은 여러개 입력 가능 but, 나머지는 1개만 입력됨
 - 원소는 정렬돼 있지 않을 수 있음
 - win_nums:
 
- 6자리 배열
 - 1 ~ 45의 정수가 입력됨
 - 중복되는 숫자가 없음
 - 원소는 정렬돼 있지 않을 수 있음
 
출력:
[최고순위, 최저순위]
를 출력한다.
  이번 문제는 프로그래머스 기준 Level 1문제다.
그래서 큰 어려움 없이 간단하게 풀 수 있었지만 반례 하나를 생각 못해서 시간이 조금 더 걸렸다.
function solution(lottos, win_nums) {
	// 정답과 일치하는 갯수
  let correctCnt = 0;
	// 0의 갯수
  let zeroCnt = 0;
	// 최저 순위
  let minRank = 0;
	// 최고순위
  let maxRank = 0;
  lottos.forEach (v => {
      if (win_nums.includes(v)) {
          correctCnt ++;
      }
      if (v === 0) {
          zeroCnt ++;
      }
  });
  minRank = Math.abs(correctCnt - 7);
  maxRank = minRank - zeroCnt;
  minRank = minRank > 6 ? 6 : minRank;
  maxRank = maxRank > 6 ? 6 : maxRank;
  
  return [ maxRank, minRank ];
}
여기서 중요한 부분은 lottos의 forEach를 돌고나서
minRank, maxRank를 재할당 하는 부분이다.
minRank는 0 ~ 6까지 나올 수 있다. 그래서 | minRank - 7 |을 하면 최저순위가 된다.
maxRank는 그냥 최저순위에 0의 갯수를 더해주면 된다.
반례는 minRank와 maxRank가 7이되는 경우에 생기게 된다.
그래서 삼항연사자로 처리를 해줬다.