ㅇ 폰켓몬 문제 :
n 마리의 폰켓몬 중에 n/2 마리를 가질 수 있음.
각 폰켓몬에는 종류에 따라 번호가 붙어있음 -> 같은 종류의 폰켓몬은 같은 번호를 가짐.
ex. 4마리의 폰켓몬 : [3 , 1 , 2 , 3] 이 될 수 있는 거임. 따라서 위 종류에서 1,4번 폰켓몬을 선택하는 것이 아닌 이상
    최대  2 개 종류의 폰켓몬을 가질 수 있음.


- 원하는 결과
: n 마리 중 N/2 마리를 선택하는데 최대 종류를 가질 수 있는 수를 찾는 것


- 주어진 변수
1) nums : n 마리 폰켓몬의 종류 번호가 담긴 배열


- 제한사항
1) nums 는 1차원 배열
2) nums 의 길이는 1 ~ 10,000 중에서 짝수이다.
3) 폰켓몬의 종류 번호는 1 ~ 200,000
4) 가장 많은 종류의 폰켓몬을 선택하는 방법이 여러가지라도 그 최대값만 return 하면 됨




- ArrayList 를 사용
1) list.contains()  :  list에 인자로 전달받은 객체가 있는지 없는 확인

2) List<Integer> 을 통해 정수 리스트를 생성

3) nums[0] 의 시작 주소에 담긴 데이터를 리스트에 넣어줌

4) list.size() 와 nums.length 를 통해 크기 비교 후 결과값을 반환해줌

 

 

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        List<Integer> list = new ArrayList<>();
        list.add(nums[0]); // nums 배열의 주소를 list 연결리스트로 복사해줌

        for(int i=1; i<nums.length; i++){
            if(!list.contains(nums[i])){
                list.add(nums[i]);
            }
        }

        answer = list.size() > nums.length/2 ? nums.length/2 : list.size();

        return answer;
    }
}

'프로그래머스' 카테고리의 다른 글

신규 아이디 추천 ( replaceAll, 정규표현식 )  (0) 2022.08.18
신고 결과 받기  (0) 2022.08.11
숫자 문자열과 영단어  (0) 2022.08.09
체육복  (0) 2021.07.31
로또 최고 순위와 최저 순위  (0) 2021.07.30

+ Recent posts