문제 풀이 : 1. 지워진 0의 숫자의 개수를 구하고 로또가 맞은 번호의 개수를 뽑는다.
2. 위의 조건에 맞게 max 와 min 을 정한다.
최고 등수는 맞은것 + 0의 개수 에 대하여 -7을 하면 값이 나온다!
Max = 맞은번호 개수 + 0의 개수의 합이 0이 아닌 경우 : 7 - (맞은 번호 + 0 의 개수)
맞은번호 개수+ 0의 개수의 합이 0인 경우 : 6
최소 등수는 0의 개수는 무조건 0이라 생각하며 맞은 경우에 대해서만 생각한다.
Min = 맞은 번호가 0일 경우 6
맞은 번호가 0이 아닌경우 7 - 맞은 번호 개수
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = {};
int matchCount = 0;
int zeroCount = (int)(Arrays.stream(lottos).filter(x -> x == 0).count());
for (int i = 0; i < lottos.length; i++)
{
for (int j = 0; j < win_nums.length; j++)
{
if (lottos[i] == win_nums[j])
matchCount++;
}
}
int maxGrade = (matchCount + zeroCount) == 0 ? 6 : 7 - (matchCount + zeroCount);
int minGrade = matchCount == 0 ? 6 : 7 - matchCount;
answer = new int[]{maxGrade,minGrade};
return answer;
}
'알고리즘 > JAVA' 카테고리의 다른 글
[JAVA] X만큼 간격이 있는 n개의 숫자 - 프로그래머스 (0) | 2021.09.30 |
---|---|
[JAVA] 직사각형 별찍기 - 프로그래머스 (0) | 2021.09.29 |
[JAVA] 소수 만들기 - 프로그래머스 (0) | 2021.07.11 |
[JAVA] 음양 더하기 - 프로그래머스 (0) | 2021.06.14 |
[JAVA] 크레인 인형뽑기 게임 - 프로그래머스 (0) | 2021.02.28 |