728x90
https://programmers.co.kr/learn/courses/30/lessons/49191
푼 방법
1. 일단 results에 맞게 승 패를 2차원테이블에 저장해준다. 승 : 1 / 패 : -1
2. 만약 A가 B한테 이기고 B 는 C한테 이긴다면 // A도 C한테 이긴다(3단논법)
3. 만약 A가 B한테 지고 B는 C한테 진다. 그럼 C는 A를 이김(3단논법)
이걸 구현하면된다.
중간에 반복문에서 j 랑 i 헷갈려서 잘못적어서 통과가안되는거 ㅡㅡ;; 겨우 찾아서 풀었다
코드쓸때 항상 주의~~~~~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
def solution(n, results):
answer = 0
score = [[0 for j in range(n)] for i in range(n)]
# 승 패를 1과 -1로 저장
for r in results:
x, y = r
score[x - 1][y - 1] = 1
score[y - 1][x - 1] = -1
# 경기 결과인 score 리스트에 따라 하위 관계들의 승부를 정리해준다
for i in range(len(score)):
for j in range(len(score)):
if score[i][j] == 1:
for k in range(len(score)):
if score[j][k] == 1:
score[k][i] = -1
score[i][k] = 1
# i가 j한테 지면 , j가 지는 모든 k에게 짐
elif score[i][j] == -1:
for k in range(len(score)):
if score[j][k] == -1:
score[i][k] = -1
score[k][i] = 1
for s in score:
# 0이 하나뿐이면 승패가 결정된녀석
if s.count(0) == 1:
answer += 1
return answer
|
cs |
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 3] 2 x n 타일링 (파이썬/python) (0) | 2021.06.22 |
---|---|
[프로그래머스 LV 3] 추석 트래픽 (파이썬/python) (0) | 2021.06.22 |
[프로그래머스 LV 1 ] 키패드 누르기 (파이썬/python) (0) | 2021.06.22 |
[프로그래머스 LV 3] 가장 먼 노드 (파이썬/python) (0) | 2021.06.21 |
[프로그래머스 LV 3 ] 등굣길 (파이썬/python) (0) | 2021.06.21 |