programmers.co.kr/learn/courses/30/lessons/77484
코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호
programmers.co.kr
이번엔 자바스크립트로 풀어보았다.
다르면서도 비슷한... 그래도 결국 알고리즘은 논리적흐름이다. 언어는 상관없다.
여러문제를 풀면서 점점 속도가 빨라지는 것 같다. 이번 문제는 푸는데에 30분밖에 안걸렸다.
나의 코드
function test() {
var lottos = [45, 4, 35, 20, 3, 9];
var win_nums = [45, 4, 35, 20, 3, 9];
solution(lottos, win_nums);
}
function solution(lottos, win_nums) {
var max = 0;
// 최고 순위
var zeroCnt = 0;
// 알수 없는 숫자의개수
var min = 0;
// 0 제외하고 같은 숫자의개수, 최저순위
for (var i = 0; i < lottos.length; i++) {
// 로또 번호의 숫자가 0이면 zeroCnt를 ++해준다.
if (lottos[i] == 0) {
zeroCnt++;
}
}
for (var i = 0; i < lottos.length; i++) {
// 각각의 번호를 비교하여 같으면 min ++해준다.
for (var j = 0; j < win_nums.length; j++) {
if(lottos[i] == win_nums[j]) {
min++;
}
}
}
max = zeroCnt + min;
// 최고 등수의 맞춘 로또 번호 개수
var answer = [];
switch (max) {
case 0:
case 1:
answer[0] = 6;
break;
case 2:
answer[0] = 5;
break;
case 3:
answer[0] = 4;
break;
case 4:
answer[0] = 3;
break;
case 5:
answer[0] = 2;
break;
case 6:
answer[0] = 1;
break;
}
switch (min) {
case 0:
case 1:
answer[1] = 6;
break;
case 2:
answer[1] = 5;
break;
case 3:
answer[1] = 4;
break;
case 4:
answer[1] = 3;
break;
case 5:
answer[1] = 2;
break;
case 6:
answer[1] = 1;
break;
}
console.log(answer)
return answer;
}
다른 분들 풀이를 보니 내 코드가 너무 초라하게 느껴진다... 너무 간단하게들 하셨어...
fillter라던지 정규표현식을 쓰면서 멋지게 구현해내는 ㅎㅎ...
일단 나는 출력되는 것에 만족하려고 한다.
천천히 힘내보자.
[깃허브]
https://github.com/RUCKUSJERRY/practiceOfJava/blob/main/Prs_Pratice/src/com/level01/arrayPlus.java
RUCKUSJERRY/practiceOfJava
Contribute to RUCKUSJERRY/practiceOfJava development by creating an account on GitHub.
github.com
'문제풀이 > 프로그래머스' 카테고리의 다른 글
위장 / 프로그래머스 연습문제 / programmers / level2 / java (0) | 2021.05.06 |
---|---|
전화번호 목록 / 프로그래머스 연습문제 / programmers / level2 / java (0) | 2021.05.05 |
소수 만들기 / 프로그래머스 연습문제 / programmers / level1 / java (0) | 2021.05.03 |
체육복 / 프로그래머스 연습문제 / programmers / level1 / Java (0) | 2021.05.02 |
K번째수 / 프로그래머스 연습문제 / programmers / level1 / Java (0) | 2021.05.01 |