반응형
문제 분석 :
로또 당첨번호인 win_nums 와 , 민우가 구매한 로또번호인 lottos 배열이 입력으로 주어졌다.
win_nums와 lottos가 일치하는 갯수에 따른 순위를 구하는 문제다.
근데 민우가 번호를 잊어먹엇고, 잊어먹은 번호를 0으로 가정하였다.
문제는 0이 만약에 모두 틀렷을 경우와, 0이 모두 맞았을경우의 순위를 구해달라고 하는게 포인트다.
문제풀이:
win-nums와 , 민수가 적은 lottos가 정확히 맞는 갯수를 저장할 correct 변수,
민수가 잊어먹어버린 번호 0을 세는 zero 변수를 저장을 해두었다.
이렇게 해두면 correct +zero= '0이 모두 맞았을경우의 갯수' , correct= '0이 모두 틀렸을 경우의 갯수'가 성립한다.
그리고, 맞은 개수 (index)에 따른 rank 배열을 설정한다.
0개,1개 맞으면 6위
2개 맞으면 5위
3개 맞으면 4위
4개 맞으면 3위
5개 맞으면 2위
6개 맞으면 1위
이에 따라 int []rank = {6,6,5,4,3,2,1}; 배열을 설정했다.
이제 lottos와 win-nums를 순회하면서 correct와 zero의 갯수를 센뒤 answer 배열에 집어넣으면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
int correct =0;
int zero =0;
int[] rank ={6,6,5,4,3,2,1};
for(int i=0;i<lottos.length;i++){
for(int j=0;j<win_nums.length;j++){
if(lottos[i]==0){
zero++;
break;
}
if(lottos[i]==win_nums[j]){
correct++;
break;
}
}
}
answer[0]=rank[zero+correct];
answer[1]=rank[correct];
return answer;
}
}
|
cs |
반응형
'알고리즘 > 프로그래머스 Level1' 카테고리의 다른 글
[프로그래머스,Java] Level1 : 완주하지 못한 선수 (0) | 2021.08.04 |
---|---|
[프로그래머스,Java] Level1 : 폰켓몬 (0) | 2021.08.04 |
[프로그래머스,Java] Level1 신규 아이디 추천 (0) | 2021.08.03 |
[프로그래머스,Java] Level1 : 모의고사 (0) | 2021.08.03 |
[프로그래머스,Java] Level1 : 소수 만들기 (0) | 2021.07.29 |