1. 첫 풀이 def solution(k, tangerine): erasedual = list(set(tangerine)) countarr = [] answer = 0 for i in erasedual: #시간복잡도 n제곱 여기서 줄여야겟네? a = tangerine.count(i) countarr.append(a) countarr.sort(reverse=True) #시간복잡도 nlogn for j in countarr: k -= j answer=1 if(k
우리는 길 유지비의 합을 최소로 만들어야 한다. 그렇다면 유지비 촤르르륵 있는 배열을 유지비로 오름차순으로 정렬을 해놓고 낮은것부터 만약 노드 길이 없다면 생성해주고 맨 마지막꺼만 빼주면 그게 최소가 아닐까? 라고 생각을 하였다. //1647 let NM = readLine()!.split(separator: " ").map{Int($0)!} let N = NM[0] let M = NM[1] var arr : [[Int]] = Array(Array(repeating: [], count: M)) for i in 0..Int{ //특정 원소가 속한 집합을 찾는것이다. if(parent[x] != x){ // 만약 루트노드가 아니면 루트노드 찾을때까지 반복! var parent = find_parent(par..