구역마다 다른 드랍 아이템
- 문제 유형 : Greedy, Graph
- 사용언어 : Python
- 난이도 : 실버 4
- 출처 : 코드 트리
def solve(N, M, pairs):
graph = {}
for a, b in pairs:
if a not in graph:
graph[a] = []
if b not in graph:
graph[b] = []
graph[a].append(b)
graph[b].append(a)
print(graph)
items = [0] * (N + 1)
# 모든 구역에 대해 아이템 할당
for node in range(1, N + 1):
available = {1, 2, 3, 4}
if node in graph:
for neighbor in graph[node]:
if items[neighbor] in available:
available.remove(items[neighbor])
# 사전 순으로 가장 앞선 아이템 선택
items[node] = min(available)
return ''.join(map(str, items[1:]))
N, M = map(int, input().split())
pairs = [map(int, input().split()) for _ in range(M)]
output = solve(N, M, pairs)
print(output)
반응형
'Programming Test > 문제풀이' 카테고리의 다른 글
[문제 풀이 21] 프로그래머스 - 완주하지 못한 선수 (0) | 2024.04.20 |
---|---|
[문제 풀이 20] 코드 트리 - 연결된 칸 찾기 (0) | 2024.04.19 |
[문제 풀이 18] 코드 트리 - 정수 두 개의 합 (0) | 2024.04.18 |
[문제 풀이 17] 코드 트리 - 연결된 그래프 (0) | 2024.04.18 |
[문제 풀이 16] 프로그래머스 - 카드 뭉치 (0) | 2024.04.17 |