IT/Java
[프로그래머스, Level 1] 로또의 최고 순위와 최저 순위(JAVA)
배당 줍는 다람쥐
2022. 8. 1. 15:03
반응형
안녕하세요.
배당 줍는 다람쥐입니다.
오늘 업로드하는 문제는 프로그래머스 Level 1, 로또의 최고 순위와 최저 순위입니다.
그러면 오늘도 문제 풀이 시작하겠습니다.
문제
https://school.programmers.co.kr/learn/courses/30/lessons/77484
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 내용은 링크 참고 부탁드립니다.
문제풀이
핵심포인트
- 최고 순위 = 맞춘 개수 + 값이 0인 개수( 0은 당첨 번호로 변경이 가능하기 때문 )
- 최저 순위 = 맞춘 개수 ( 맞춘 개수의 등수보다 아래로는 내려갈 수 없다. )
코드
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int matchCnt = 0; // 0이 아닌 숫자 중에 당첨 번호와 일치하는 개수
int zeroCnt = 0; // 0의 개수
// 1. 0이 아닌 숫자 중에 당첨 번호와 일치하는 개수 = 최저 순위
// 2. 0은 당첨 번호로 변경이 가능하기 때문에, 최고 순위 = matchCnt + zeroCnt가 된다.
for(int l : lottos){
if(l == 0) zeroCnt++;
else{
for(int w : win_nums){
if(l == w){
matchCnt++;
break;
}
}
}
}
int min = matchCnt;
int max = matchCnt + zeroCnt;
int[] answer = {Math.min(7-max, 6), Math.min(7-min, 6)};
return answer;
}
}
반응형