폰켓몬 풀이 방법 내용을 읽어보면 결국 가장 많이 가져가는 경우는 N/2이고 가장 적게 가져가는 경우는 내가 폰켓몬을 총 잡은 수(중복 제외)이다. 중복을 제외하고 폰켓몬의 종류를 알아내기 위해서 HashSet를 이용했다. HashSet은 결국 집합이니까 중복된걸 알아서 제거하고 size()메소드를 통해서 알아낼 수 있다. 종류가 N/2보다 많아도 가장 많이 가져가는건 N/2이기 때문에 Math.min함수를 이용한다. 소스 코드(Java) import java.util.HashSet; class Solution { public int solution(int[] nums) { HashSet hash=new HashSet(); for(int num:nums) hash.add(num); return Math...
해결방법 미로찾기 문제인데, 상하좌우로 길이 있는지 방문합니다. 길이 있으면 BFS로 데이터를 집어 넣고 한개씩 빼면서 그 다음 곳을 방문하는 것을 반복하면 됩니다. DFS로 하면 깊이탐색이기 때문에 최악의 거리가 나올 가능성이 많기 때문에 사용하시면 안됩니다. BFS는 주변부터 탐색이기 때문에 탐색하면서 최종 도착지가 나오면 그 값이 최단 거리이기 때문입니다. 이번에는 자바로 해봤습니다. 소스코드 import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; import java.util.Deque; public class Solution { public static void main(String[] args) { in..