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문을 잘 사용하지 않다가 유용하게 한번 사용한 뒤로 자주 사용하는 것 같다.
반복문에서 정말 효율적이기 때문에 잘 사용해야될 것 같다.
'문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 기능개발(JAVA) (0) | 2024.04.24 |
---|---|
[프로그래머스] 같은 숫자는 싫어(JAVA) (0) | 2024.04.24 |
[프로그래머스] 의상(JAVA) (0) | 2024.04.23 |
[프로그래머스] 전화번호 목록(JAVA) (0) | 2024.04.23 |
[프로그래머스] 완주하지 못한 선수(JAVA) (0) | 2024.04.23 |