반응형
250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- SWEA
- ssafy 7기 합격
- ssafy 7기
- 유니온 파인드
- SSAFY 8기
- 백준7576 bfs
- 삼성 청년 SW 아카데미
- 알고리즘
- pytorch
- 전이학습
- ssafy 7기 교수님
- bfs
- dfs
- SSAFY 입학식
- 코딩교육
- SSAFYcial
- React
- 싸피 7기 입학식
- 코딩 교육
- 프로그래머스
- 백준
- DenseNet
- DP
- Learning
- SSAFY
- git
- 삼성청년sw아카데미
- 웹 표준 사이트 만들기
- 프로그래머스 고득점 kit
- 이코테
Archives
- Today
- Total
개미의 개열시미 프로그래밍
[프로그래머스] 로또의 최고 순위와 최저 순위(자바 풀이) 본문
728x90
반응형
[나의 풀이]
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int zeroCnt = 0;
int equalCnt = 0;
for(int i=0; i<6; i++){
if(lottos[i] == 0) zeroCnt+=1; // 0 카운트
for(int j=0; j<6; j++){
if(lottos[i] == win_nums[j]) equalCnt += 1; // 두 로또 비교 후 같은 경우
}
}
int max = 7 - (equalCnt + zeroCnt);
int min = 7 - equalCnt;
if(max==7) max = 6;
if(min==7) min = 6;
return new int[] {max, min};
}
}
// 첫 풀이
// int[] ans = new int[2];
// ans[0] = equalCnt + zeroCnt;
// ans[1] = equalCnt;
// int[] result = new int[2];
// for(int i=0; i<2; i++){
// if(ans[i] == 6){
// result[i] = 1;
// }else if(ans[i] == 5){
// result[i] = 2;
// }else if(ans[i] == 4){
// result[i] = 3;
// }else if(ans[i] == 3){
// result[i] = 4;
// }else if(ans[i] == 2){
// result[i] = 5;
// }else{
// result[i] = 6;
// }
// }
//System.out.println(Arrays.toString(result));
- lottos배열과 win_nums를 이중 for문으로 비교 후에 같은 것을 카운팅 해서 equalCnt에 저장했고 lottos에 있는 0만 카운팅 해서 zeroCnt변수에 저장했다.
- 처음에는 반복문과 여러개의 조건문을 써서 최고 순위와 최저 순위를 리스트에 저장했는데 이 방법은 비효율적이다.
다음으로 생각해낸 풀이는 7에서 두 배열 비교후 같은 수와 0을 카운팅 한 수를 빼서 최고 순위와 최저 순위를 기록하는 것인데 if(min==7) min=6; 부분만 작성하면 될 줄 알았더니 오답이 나왔다. 생각해보니 lottos배열에 0은 하나도 없지만 다 틀렸을 경우도 생각해줘야 해서 if(max==7) max=6;을 추가해주었더니 답이 나왔다.
728x90
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 백준 10971 외판원순회 - 자바 (2) | 2022.02.10 |
---|---|
[알고리즘] 백준2304 창고다각형 - 자바 (0) | 2022.02.09 |
Comments