코딩 테스트/leetCode

[leetCode]1688. Count of Matches in Tournament (Python)

우주바다 2022. 10. 21. 18:01
728x90

▼ 문제 바로가기 (링크)  

https://leetcode.com/problems/count-of-matches-in-tournament/

 

Count of Matches in Tournament - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


팀 수를 나타내는 정수 n이 주어진다.

토너먼트 형식으로 1개의 팀이 남을 때 까지 경기를 진행했을 때,

진행된 경기 횟수의 총합을 반환하는 문제. 

 

주어진 팀이 홀수인경우 1개의 팀은 부전승으로 다음 라운드에 참여한다. 

 

class Solution:
    def numberOfMatches(self, n: int) -> int:
        matches = 0    
        cnt = 0 
        
        while n > 1 :
            if n % 2 == 0 :         # even
                matches = n / 2
                n = n / 2 
                cnt += matches
            else:                    # odd
                matches = ((n-1) / 2)
                n = matches + 1
                cnt += matches
                
        return int(cnt)

팀이 1개 남을 때까지 while 루프를 돌면서

짝수 홀수 여부에 따라 다르게 동작하도록 작성했다.

경기 횟수를 담을 변수 matches와 모든 경기 수를 세는 cnt 변수를 사용했다.

728x90
반응형