메모리와 시간 때문에 많이 틀린 문제다 풀긴했지만 고칠 부분이 많은 코드같다..! 우선 문제를 보면 결국 딸 이름은 n+m-1의 길이를 가질것이다 그럼 시작점부터 해서 가중치가 제일 작은것만 골라서 끝점까지 가면 된다! 다익스트라! 사용하자 각 자리의 알파벳을 가중치라 생각하고 이름을 찾아가다가 n+m-1 길이의 이름을 찾으면 break를하자! 여기서 break안하면 pq에 너무 많이들어가서 메모리가 터진다 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include u..
시간이 충분한 문제다 내가 0일 때 그리고 1일 때 경우를 나눠서 생각하면 된다 먼저 모양의 수는 어떻게 정할까? 유니온 파인드를 이용하면 쉽게 찾을 수 있다 merge할 때마다 해당 부모의 수도 합치면 된다 그렇게 미리 크기를 구해두고 모든 정점에서 만약 해당 정점이 1이면 해당 부모의 크기 0이면 4방향 부모의 합+ 1=>(나를 1로바꿨을때) 을 하면서 최댓값을 찾아보자! 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6..