본문 바로가기
문제풀이/프로그래머스

로또의 최고 순위와 최저 순위 / 프로그래머스 연습문제 / programmers / level1 / JavaScript

by RUCKUS 2021. 5. 4.

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