강의로 돌아가기
Hwa-Jong

2 7 8 9 안되시는분 이거 한번 해보세요 (코드 첨부 주의)

5 [[1, 2], [4, 5], [3, 4], [2, 3]] 5

전 2로 잘못나왔는데 5가 정답입니다.

전 이거해결하니까 되더라고요

작성중인 코드―solution.py
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
33
34
35
36
def solution(n, results):
    boxing = Boxing(n)
    boxing.fight(results)
    return boxing.get_ranked_num()

class Boxing():
    def __init__(self, n):
        self.n = n
        self.players = {}        
        # add player
        for i in range(1, n+1):
            self.players[i] = [[],[]]

    def fight(self, results):
        for result in results:
            win, lose = result
            winner_stronger_lst, winner_weaker_lst = self.players[win]
            loser_stronger_lst, loser_weaker_lst = self.players[lose]

            for winner_stronger in winner_stronger_lst:
                self.players[winner_stronger][1] = list(set(self.players[winner_stronger][1] + [lose] + self.players[lose][1]))
            self.players[win][1] = list(set(self.players[win][1] + [lose] + self.players[lose][1]))

            for loser_weaker in loser_weaker_lst:
                self.players[loser_weaker][0] = list(set(self.players[loser_weaker][0] + [win] + self.players[win][0]))
            self.players[lose][0] = list(set(self.players[lose][0] + [win] + self.players[win][0]))


    def get_ranked_num(self):
        count = 0
        for i in range(1, self.n+1):
            stronger_lst, weaker_lst = self.players[i]
            if len(stronger_lst + weaker_lst) == self.n -1:
                count += 1

        return count
  • 방지훈

    저는 5잘 나오는데... 왜 2,7,8 번 틀릴까요?ㅜ

    방지훈―2021.08.26 16:27
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.