목록2024/09/24 (2)
공부 기록장
https://www.acmicpc.net/problem/27966 코드N = int(input())print((N-1) ** 2)for i in range(2, N+1): print(1, i) 애드혹 문제란?문제를 풀기 위해 잘 알려진 정교한 알고리즘을 적용하지 않고도 해결할 수 있는 유형의 문제! 굳이 유형 분류를 하자면, 구현, 그리디, 수학 유형으로 분류할 수 있다.다시 말해, 정형화 된 방법론이 아니라, 창의적인 아이디어를 떠올려야 하는 문제 접근 방식- 노드 사이 거리에 대한 설명이 없으면 1이라고 간주- 모든 노드 쌍의 거리 합을 최소화하기 위해서는 하나의 노드에 다른 모든 노드가 연결된 형태여야 한다- 가운데 노드를 1번 노드라고 한다면, 1번 노드와 나머지 (N-1)개 노드로 가는 ..
https://www.acmicpc.net/problem/14244 코드n, m = map(int, input().split())cnt = 0for i in range(n-1): print(cnt, i+1) # cnt가 n-m 이상이면 cnt는 그대로 유지가 되므로, 리프 노드에 노드들을 이어붙일 수 있게 됨 if n-m > cnt: cnt += 1 접근 방법- 연결을 어떤 식으로 하든, 리프 노드는 최소 2개 이상이다.- n개의 노드 중에서 m개의 노드가 리프 노드이면, n-m개의 노드가 리프 노드가 아니다.- n-m번은 순차적으로 연결을 해주고, 그 이후 연결은 마지막 노드에 전부 연결해 준다. 배운 점- 트리의 최소 리프 노드 개수를 토대로, 어떠한 방식으로 리프 노드를..