Cherry & Cherish
[JavaScript] 프로그래머스(Programmers) 로또의 최고 순위와 최저 순위 본문
자바스크립트 알고리즘 연습을 위해, Python3으로 풀이 후 Javascript로 변환하는 과정을 기록하고 있습니다.
문제 :
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다.
순위당첨 내용
로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다.
민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요.
[제한사항]
lottos는 길이 6인 정수 배열입니다.
lottos의 모든 원소는 0 이상 45 이하인 정수입니다.
0은 알아볼 수 없는 숫자를 의미합니다.
0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다.
lottos의 원소들은 정렬되어 있지 않을 수도 있습니다.
win_nums은 길이 6인 정수 배열입니다.
win_nums의 모든 원소는 1 이상 45 이하인 정수입니다.
win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다.
win_nums의 원소들은 정렬되어 있지 않을 수도 있습니다.
접근 :
내용 그 자체를 구현했다.
풀이(Python) :
def solution(lottos, win_nums):
answer = []
check, zero = 0, 0
for i in lottos:
if i in win_nums:
check += 1
elif i == 0:
zero += 1
answer.append(check+zero)
answer.append(check)
for i in range(len(answer)):
if answer[i] == 2 :
answer[i] = 5
elif answer[i] == 3:
answer[i] = 4
elif answer[i] == 4:
answer[i] = 3
elif answer[i] == 5:
answer[i] = 2
elif answer[i] == 6:
answer[i] = 1
else:
answer[i] = 6
return answer
풀이(JavaScript) :
function solution(lottos, win_nums) {
var answer = [];
var check = 0;
var zero = 0;
for (i = 0; i < 6; i++) {
if (lottos[i] === 0) {
zero += 1;
} else {
if (win_nums.find((a) => a === lottos[i]) != undefined) {
check += 1;
}
}
}
answer.push(check + zero, check);
for (i = 0; i < 2; i++) {
if (answer[i] == 2) {
answer[i] = 5;
} else if (answer[i] == 3) {
answer[i] = 4;
} else if (answer[i] == 4) {
answer[i] = 3;
} else if (answer[i] == 5) {
answer[i] = 2;
} else if (answer[i] == 6) {
answer[i] = 1;
} else {
answer[i] = 6;
}
}
return answer;
}
'Algorithm > Programmers' 카테고리의 다른 글
[JavaScript] 프로그래머스 (카카오 기출) 실패율 (0) | 2023.08.04 |
---|---|
[JavaScript] 프로그래머스(Programmers) 덧칠하기 (0) | 2023.08.04 |
[JavaScript] 프로그래머스(Programmers) 소수 찾기 (0) | 2023.08.02 |
[JavaScript] 프로그래머스(Programmers) 기사단원의 무기 (0) | 2023.08.02 |
[JavaScript] 프로그래머스 카카오 기출 [1차] 다트게임 (0) | 2023.08.02 |
Comments