(Python, Java) 프로그래머스 - 로또의 최고 순위와 최저 순위
in Algorithm on Programmers, Level1
[문제 링크]
Python 풀이
def solution(lottos, win_nums):
win = set(win_nums)
answer = []
blank = 0
cnt = 0
for lotto in lottos:
if lotto in win:
cnt += 1
elif lotto == 0:
blank += 1
top = cnt + blank
if top <= 1:
answer.append(6)
else:
answer.append(7 - top)
if cnt <= 1:
answer.append(6)
else:
answer.append(7 - cnt)
return answer
Java 풀이
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
HashSet<Integer> myNum = new HashSet<>();
int zero=0;
int match=0;
int maxRank;
int minRank;
for (int lotto : lottos) {
if (lotto == 0){
zero+=1;
}
else{
myNum.add(lotto);
}
}
for (int win_num : win_nums) {
if (myNum.contains(win_num)){
match+=1;
}
}
maxRank = 7 - (match+zero);
minRank = 7- match;
if(maxRank>6)
maxRank = 6;
if (minRank >6)
minRank = 6;
answer[0] = maxRank;
answer[1] = minRank;
return answer;
}
public static void main(String[] args) {
Solution s = new Solution();
int[] lotto = {44, 1, 0, 0, 31, 25};
int[] win = {31, 10, 45, 1, 6, 19};
s.solution(lotto,win);
}
}