문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 접근
[pseudo code]
1. let match에는 식별 가능한 숫자 중 당첨번호와 맞는 숫자의 개수를 담고
2. let zeros에는 0의 개수 담기
3. 맞은 번호 개수별로 당첨 등수를 알수 있는 rank 오브젝트 생성 (key-value)
4. forEach를 이용해 match와 zeros에 값을 담고,
5. rank object를 이용해 match와 match+zeros의 value를 반환
key에 숫자로 입력해도 자동 문자로 변환시키다.
function solution(lottos, win_nums) {
let match = 0,
zeros = 0;
const rank = {
match: "rank",
6: 1,
5: 2,
4: 3,
3: 4,
2: 5,
1: 6,
0: 6,
};
lottos.forEach((e) => (e === 0 ? zeros++ : zeros));
lottos.forEach((e) => (win_nums.includes(e) ? match++ : match));
console.log(match, zeros);
return [rank[(match + zeros).toString()], rank[match.toString()]];
}
console.log(solution([44, 1, 0, 0, 31, 25], [31, 10, 45, 1, 6, 19])); // [3, 5]
console.log(solution([0, 0, 0, 0, 0, 0], [38, 19, 20, 40, 15, 25])); // [1, 6]
console.log(solution([45, 4, 35, 20, 3, 9], [20, 9, 3, 45, 4, 35])); // [1,1]'항해99_10기 > [2주차] 알고리즘 문제풀이' 카테고리의 다른 글
| [20번] [중급] 문자열 내림차순으로 배치하기 (0) | 2022.11.22 |
|---|---|
| [19번] [중급] 문자열 내 마음대로 정렬하기 (0) | 2022.11.21 |
| [16번][중급] 두개 뽑아서 더하기 (0) | 2022.11.21 |
| [15번][중급] 같은 숫자는 싫어 (0) | 2022.11.21 |
| [14번][중급] 최소 직사각형 (0) | 2022.11.21 |