티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/77484?language=java
🐢 설명
문제는 길지만 내용은 정말 간단하다.
내가 뽑은 6개의 숫자와 1등 숫자 6개를 비교하는데, 나의 숫자가 0인 경우 전부 틀리거나 전부 맞을 때의 경우를 구하면 된다.
숫자도 6개뿐이으로 2중 for문으로 모든 숫자를 비교해서 1등 번호에 존재하는 숫자의 개수를 구하고, 나의 숫자에서 0의 개수를 구한다.
최소 등수는 전자에서 구한 1등번호와 같은 숫자의 개수로 계산하고, 최대 등수는 전자에서 더한 개수 + 0의 개수의 값으로 계산한다.
시간복잡도 : O(n^2)
🐢코드
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int zeroCnt = 0;
int matchCnt = 0;
for (int i = 0; i < 6; i++)
{
int myN = lottos[i];
if (myN == 0) {
zeroCnt++;
continue;
}
for (int j = 0; j < 6; j++)
{
if (myN == win_nums[j]) {
matchCnt++;
break;
}
}
}
int min = calcPoint(matchCnt);
int max = calcPoint(matchCnt + zeroCnt);
return new int[]{max, min};
}
private static int calcPoint(int matchCnt)
{
switch (matchCnt) {
case 6:
return 1;
case 5:
return 2;
case 4:
return 3;
case 3:
return 4;
case 2:
return 5;
}
return 6;
}
}
🐢 마무리
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
(프로그래머스) 다단계 칫솔 판매 (dev-matching 상반기) (0) | 2021.10.14 |
---|---|
(프로그래머스) 행렬 테두리 회전하기 (dev-matching 상반기) (0) | 2021.10.14 |
(프로그래머스) 호텔 방 배정 (0) | 2021.09.17 |
(프로그래머스) 불량 사용자 (0) | 2021.09.15 |
(프로그래머스) 징검다리 건너기 (0) | 2021.09.14 |
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday