Algorithm
[Algorithm] 포켓몬 고르기
dev_Step
2022. 6. 4. 12:41
프로그래머스[초급]
배열안에 포켓몬이 들어있으며, 같은 종류의 포켓몬끼리는 같은 번호로 되어 있다.
주어진배열중에서 내가 고를수 있는 포켓몬의 숫자는 " 총 포켓몬 숫자/2 " 이고
이중에 최대한 많은 종류의 포켓몬을 고를수 있는 숫자를 리턴하라
>>> 내 풀이
1. 일단 Set을 쓰면 중복을 제거해주기 때문에 사용하려고 하다가, 컬렉션을 사용하지 않고 풀어보려고
for문을 통해서 중복된 숫자를 0 으로 바꿔주고, 해당 배열의 0이 아닌 요소의 숫자를 구해서 중복되지 않은
포켓몬의 숫자를 removeOverlap으로 구했다.
2. 이때 내가 골라야 하는 숫자는 총 포켓몬 숫자의 1/2 이고,
그러면 "내가 골라야 하는 숫자가 " removeOverlap 보다 크게 되면
내가 중복되지 않은 최대한많은 포켓몬을 가질수 있는 숫자는 removeOverlap 이되고,
그 반대의 경우는 "내가 골라야 하는 숫자가" 된다.

============================================================================================다른 사람의 풀이로는
Set을 이용한 방법과 Stream을 이용한 방법이 있었다.
이방법은 따로 기술하지 않도록 하겠다.