728x90
반응형
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
//int[] -> Integer[]
int cnt=0;
for(int x:lottos) if(x==0) cnt++;
// System.out.println("cnt: "+cnt);
Integer[] buyArr=Arrays.stream(lottos).boxed().toArray(Integer[]::new);
Integer[] winArr=Arrays.stream(win_nums).boxed().toArray(Integer[]::new);
//당첨이 가능했던 최고 순위와 최저 순위
//set으로 비교 -> 0의 개수와 맞은 개수 비교해
//포함 하는 개수+0이 모두 win_nums가 될때 -> 개수 : 최고 순위
//포함 하는 개수+0이 모두 win_nums가 안 될때 -> 개수 : 최저 순위
Set<Integer> buySet=new HashSet<>(Arrays.asList(buyArr));
Set<Integer> winSet=new HashSet<>(Arrays.asList(winArr));
int wrong=0;
int right=0;
for(int x:buySet){
if(winSet.contains(x)) right++;
else wrong++;
// System.out.println(right+" "+wrong);
}
int high=right+cnt;
int low=right;
answer[0]=isRank(high);
answer[1]=isRank(low);
return answer;
}
public int isRank(int a){
if(a<2) return 6;
else return 7-a;
}
}
1. Collections 클래스의 frequency 메서드 이용
2. int[] -> List<Integer>로 변환하는데 스트림 이용 [임포트 필요]
import java.util.*;
import java.util.stream.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
List<Integer> buyList=Arrays.stream(lottos)
.boxed()
.collect(Collectors.toList());
List<Integer> winList=Arrays.stream(win_nums)
.boxed()
.collect(Collectors.toList());
int cnt=Collections.frequency(buyList, 0);
// System.out.println("cnt: "+cnt);
//당첨이 가능했던 최고 순위와 최저 순위
//set으로 비교 -> 0의 개수와 맞은 개수 비교해
//포함 하는 개수+0이 모두 win_nums가 될때 -> 개수 : 최고 순위
//포함 하는 개수+0이 모두 win_nums가 안 될때 -> 개수 : 최저 순위
int wrong=0;
int right=0;
for(int x:buyList){
if(winList.contains(x)) right++;
else wrong++;
// System.out.println(right+" "+wrong);
}
int high=right+cnt;
int low=right;
answer[0]=isRank(high);
answer[1]=isRank(low);
return answer;
}
public int isRank(int a){
if(a<2) return 6;
else return 7-a;
}
}
+) 모두 포함하는지 확인하려면 (true,false) 리턴 [addAll, removeAll, retainAll]
//모두 포함하는지 확인하는 함수
if(set.containsAll(Arrays.asList("asd", "efg")))
728x90
반응형
'Server Programming > BackEnd Project' 카테고리의 다른 글
56일차 - TIL (0) | 2023.02.06 |
---|---|
숫자 짝꿍-String.repeat, append, String=char+"", startsWith("0"), char-48=숫자 (0) | 2023.02.06 |
[알고리즘 정리] - DP, Divide&Conquer, BinarySearch, Dijkstra, Greedy, Kruskal, Prim, Backtracking (0) | 2023.02.05 |
정규표현식과 matches, patterns 메서드, 진법 변환 (0) | 2023.02.03 |
51일차 - TIL (0) | 2023.02.01 |