1️⃣ 문제
https://school.programmers.co.kr/learn/courses/30/lessons/258711
2️⃣ 필요한 개념
차수 기반 문제 판별하기
- 입력 크기 크다 → 탐색 괜찮나?
- 문제 설명이 구조적 정의(사이클, 끝점, 교차점) → 차수로 풀 수 있나?
- 출력이 개수만 요구됨 → 구체 탐색 필요 없네?
3️⃣ 풀이
def solution(edges):
answer = []
in_out_list = [[0,0] for _ in range(1000000+1)]
if (len(edges) == 1):
return 1, 1, 0, 0
for edge in edges:
a,b = edge
in_out_list[a][1] += 1
in_out_list[b][0] += 1
bar_count = sum(1 for i,o in in_out_list if i==1 and o==0)
if (bar_count == 0):
bar_count = sum(1 for i,o in in_out_list if i==0 and o==1)
eight_count = sum(1 for i,o in in_out_list if i>=2 and o>=2)
print(in_out_list[:10])
max_o = -1
max_k = -1
for k in range(len(in_out_list)):
i_o = in_out_list[k]
i, o = i_o
if (i == 0 ):
if (max_o < o):
max_o = o
max_k = k
start_node = max_k
print(start_node)
max_out = in_out_list[max_k][1]
donut_count = max_out - bar_count - eight_count
return start_node, donut_count, bar_count, eight_count
'Algorithm > Python' 카테고리의 다른 글
[프로그래머스] 숫자 문자열과 영단어 (python) (0) | 2025.09.05 |
---|---|
[알고리즘 스터디] 백준 2164번 Python 풀이 - 카드2 (연산 복잡도, deque, 식 세우기) (0) | 2022.06.03 |
[알고리즘 스터디] 백준 2798번 Python 풀이 - 블랙잭 (0) | 2022.06.03 |
[알고리즘 스터디] 백준 1259번 Python 풀이 - 팰린드롬수 (0) | 2022.05.02 |
[알고리즘 스터디] 백준 10773번 Python 풀이 - list 자료형 다루기 (0) | 2022.04.06 |