IT's 우

[java]프로그래머스 - 로또의 최고 순위와 최저 순위(Lv.1), int 배열에서 특정요소 찾기!!! Set으로 변환해 set.contains() 본문

알고리즘/프로그래머스

[java]프로그래머스 - 로또의 최고 순위와 최저 순위(Lv.1), int 배열에서 특정요소 찾기!!! Set으로 변환해 set.contains()

디우 2022. 10. 10. 18:08
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/77484

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

코드

 

import java.util.*;
class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
      	int zero_cnt = 0;
		int co_cnt = 0;
		int[] answer = new int[2];
		Set<Integer> set = new HashSet<>();
		for (int num : win_nums) {// set에 로또 정답 번호 넣어주기, set에서 쉽게 포함여부 알려고
			set.add(num);
		}
		for (int i = 0; i < lottos.length; i++) {

			if (lottos[i] == 0) {// 0이면 0숫자 세주기
				zero_cnt++;
			} else {// 0이 아니면 정답에 숫자있는지 확인
				if (set.contains(lottos[i])) {
					co_cnt++;
				}
			}
		}

		if (co_cnt >= 2) {
			answer[1] = 7 - co_cnt;
		} else {
			answer[1] = 6;
		}
		if (co_cnt + zero_cnt >= 2) {
			answer[0] = 7 - (co_cnt + zero_cnt);
		} else {
			answer[0] = 6;
		}

		return answer;
    }
}

 

 

풀이

 

간단하게 두 배열을 비교해서 일치하는 개수 co_cnt로 최소를 구해줬다. 2 이상이고 7을 뺀 것은 그거 빼면 저기 순위 나와서, 최대는 

일치하는 개수 co_cnt에 0의 개수 zero_cnt를 더해서 구해줬다.

 

 

 

int 배열에서 특정요소 찾기!!! Set으로 변환해 set.contains() 
int 배열에서 특정 요소를 구해주려고 하는데 구글링 해서 나온 것들이 int에서는 안 먹혀, Set을 사용하여 특정 요소가 포함하는지 구해줬다.

 

1. set에 배열 값을 넣어주고 

Set<Integer> set = new HashSet<>();
		for (int num : win_nums) {// set에 로또 정답 번호 넣어주기, set에서 쉽게 포함여부 알려고
			set.add(num);
		}

2. set.contains(특정요소) 를 사용해줬다!!!!!!

if (set.contains(lottos[i])) {
					co_cnt++;
				}
728x90
반응형