본문으로 바로가기

로또의 최고 순위와 최저 순위

category 코딩테스트/programmers 2022. 6. 12. 00:41

https://programmers.co.kr/learn/courses/30/lessons/77484

 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

 

100% 나의 힘으로 풀수 있는 level1...

다른 사람들 풀이 보면 현타오지만, 차근차근 알아보도록!!!!

	class Solution {
	    public int[] solution(int[] lottos, int[] win_nums) {
	        int[] answer = new int[2];
	        
	        Arrays.sort(lottos);
	        Arrays.sort(win_nums);
	        
	        int lo_zero = 0, win_zero=0;
	        
	        //0갯수 구하기
	        for(int i : lottos) if(i == 0) lo_zero++;
	        for(int i : win_nums) if(i == 0) win_zero=1;
 
	        
	        //맞은 갯수
	        int math = 0;
	        //다른 갯수 
	        int notMath = 0;
	        
	        for(int i = 0; i < 6; i++) {
	        	int tmp = 0;
	        	for(int j = 0; j < 6; j ++) {
	        		tmp = win_nums[j];
	        		if(tmp != 0 && lottos[i] == tmp) math++;
	        	}
	        	if(tmp != 0 && lottos[i] != 0 & tmp != lottos[i]) notMath++;
	        }
	        
	      //notMath가 앞으로 맞출수 있는 수.
	       
	      //최고등수
	      int result1 = 0, result2=0;
	      if(win_zero > 0) {
	    	  result1 = math + lo_zero -1;
	    	  result2 = math + 1;
	      } else {
	    	  result1 = math + lo_zero;
	    	  result2 = math;
	      }
	     
	      if(result1 == 1 || result1 == 0) {
	    	  answer[0] = 6;
	      } else {
	    	  answer[0] = 7-result1;
	      }
	      
	      if(result2 == 1 || result2 == 0) {
	    	  answer[1] = 6;
	      } else {
	    	  answer[1] = 7-result2;
	      }
	      
	      return answer;
	    }  
	}

'코딩테스트 > programmers' 카테고리의 다른 글

올바른 괄호 - java  (0) 2022.08.16
신고 결과 받기  (0) 2022.08.13
[array03]H-Index  (0) 2022.06.10
[array02]가장 큰 수  (0) 2022.06.10
[array01]K번째 수  (0) 2022.06.10