관리 메뉴

JumpUp

프로그래머스 [폰켓몬] 본문

알고리즘

프로그래머스 [폰켓몬]

yeunnnn 2021. 4. 2. 16:58

프로그래머스 Lv1문제가 얼마 남지 않았다.

[폰켓몬], [신규 아이디 추천], [완주하지 못한 선수] 이 3문제는 문제 풀이에 고민을 좀 한 문제라 남겨보려 한다.

 


 

처음에는 폰켓몬 종류의 모든 경우의 수를 구하고 종류의 Max개수를 찾는 방식으로 접근하려 했다. 그런데 문제는 골라야하는 폰켓몬 수가 테스트케이스마다 다르다 보니 이중 삼중 for문? 정해지지 않는다는 것이다.. 잘못 접근했다고 생각하여 종이에 끄적이다 보니.."같은 종류는 1개로 보자"이 생각이 문제를 해결할 수 있었던 실마리였다.

 

[풀이방법]

폰켓몬 종이 풀이

 

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        List<Integer> list = new ArrayList<>();
        list.add(nums[0]);
        for(int i=1;i<nums.length;i++){
            if(!list.contains(nums[i])) list.add(nums[i]);
        }
        
        int type = list.size();
        int pick = nums.length/2;
        int result = 0;
        
        if(type>pick) result = pick;
        else result = type;
        
        return result;
    }
}

 

728x90