File tree Expand file tree Collapse file tree 2 files changed +62
-0
lines changed
Expand file tree Collapse file tree 2 files changed +62
-0
lines changed Original file line number Diff line number Diff line change 1+ """
2+ # 계수 정렬 idea 적용
3+ """
4+
5+ def solution (topping ):
6+ answer = 0 # 공평하게 자를 수 있는 경우의 수
7+ # 0, graph
8+ forward = set ()
9+ backward = dict ()
10+ # 1. key 종류, value: toppping 중복 개수
11+ for t in topping :
12+ backward [str (t )]= backward .get (str (t ),0 )
13+ backward [str (t )] += 1
14+ print (backward )
15+ #2. forward vs backward
16+ for t in topping :
17+ # f 에서 t가 추가됨 == b에서 t 빠짐
18+ forward .add (t )
19+ backward [str (t )] -= 1
20+ if backward [str (t )] == 0 :
21+ del backward [str (t )]
22+
23+ # 토핑 종류 같은 경우 = 공평 한 경우
24+ if len (forward ) == len (backward .keys ()):
25+ answer += 1
26+
27+ return answer
Original file line number Diff line number Diff line change 1+ INF = int (1e9 ) #무한을 나타내는 갑스올 10억 설정
2+
3+ # 노드 개수 & 간선의 개수 입력
4+ n = int (input ())
5+ m = int (input ())
6+ #1. graph 설정 -인접 행렬(2차원 , nxn ) , 초기화
7+ graph = [[INF ]* (n + 1 ) for _ in range (n + 1 )]
8+
9+ #1-1. 자기 자신에서 자기 자신 가는 비용 {Cost (A->A)}= 0 초기화
10+ for a in range (1 ,n + 1 ) :
11+ for b in range (1 ,n + 1 ):
12+ if a == b :
13+ graph [a ][a ] = 0
14+
15+ #1-2 .각 간선에 대한 정보를 입력 받아, 그 값으로 초기화 : Cost(A->B) = 초기값
16+ for _ in range (m ):
17+ # Cost(A->B) = c
18+ a ,b ,c = map (int , input ().split ())
19+ graph [a ][b ]= c
20+
21+ #2. 플로이드 워샬 점화식 수행
22+ # a->b : a->k->b vs a->b
23+ for k in range (1 ,n + 1 ):
24+ for a in range (1 ,n + 1 ):
25+ for b in range (1 ,n + 1 ):
26+ graph [a ][b ] = min (graph [a ][b ], graph [a ][k ]+ graph [k ][b ])
27+
28+ # 출력
29+ for a in range (1 ,n + 1 ):
30+ for b in range (1 ,n + 1 ):
31+ if graph [a ][b ] == INF :
32+ print ("INF" , end = "" )
33+ else :
34+ print (graph [a ][b ], end = "" )
35+ print ()
You can’t perform that action at this time.
0 commit comments