문제 풀이/프로그래머스

[프로그래머스] 폰켓몬(JAVA)

27200 2024. 4. 23. 15:29

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


풀이

import java.util.Set;
import java.util.HashSet;

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        Set<Integer> set = new HashSet<>();
        for(int i = 0; i < nums.length; i++){
            if(set.contains(nums[i])){
                continue;
            }else{
                set.add(nums[i]);
                answer++;
                if(answer >= nums.length / 2) break;
            }
        }
        return answer;
    }
}

 

 

중복을 허용하는 것은 많은 폰켓몬을 모으는데 도움이 되지 않기 때문에 중복이 허용되지 않는 set를 사용한다.

만약 중복이 되지 않는다면 set에 값을 추가하고 set의 사이즈를 늘려준다. 만약 이 값이 n/2보다 크다면 반복을 멈춘다.

 

최근 continue문을 잘 사용하지 않다가 유용하게 한번 사용한 뒤로 자주 사용하는 것 같다.

반복문에서 정말 효율적이기 때문에 잘 사용해야될 것 같다.