본문 바로가기

Algorithm/Implementation

(C++) - LeetCode (easy) 1688. Count of Matches in Tournament

반응형

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

토너먼트의 경기 수를 구하는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

현 round의 team 수 teams, 진행한 총 경기수 matches를 각각 n, 0으로 초기화해줍니다.

📔 풀이과정

teams가 1초과인 동안 round를 while loop를 수행하며 매 loop별로 다음을 진행합니다.1. 현 round의 match수는 teams / 2만큼입니다. 이를 지역변수 roundMatch를 선언해 값을 저장합니다.2. roundMatch만큼 경기를 진행했으므로 matches에 해당 값을 누적해 더해줍니다.3. 다음 round의 teams는 tournament를 진행해 각 경기별 이긴 수 + 부전승 한 team 수이므로 해당값으로 갱신해줍니다.

📔 정답 출력 | 반환

matches를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    int numberOfMatches(int n) {
        int teams = n;
        int matches = 0;
        while(teams > 1) {
            int roundMatch = teams / 2;
            matches += roundMatch;
            teams = roundMatch + teams % 2;
        }
        return matches;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.