반응형
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;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - LeetCode (easy) 1725. Number Of Rectangles That Can Form The Largest Square (0) | 2024.06.21 |
---|---|
(C++) - LeetCode (easy) 1716. Calculate Money in Leetcode Bank (0) | 2024.06.19 |
(C++) - LeetCode (easy) 1672. Richest Customer Wealth (0) | 2024.06.03 |
(C++) - LeetCode (easy) 1652. Defuse the Bomb (0) | 2024.05.24 |
(C++) - LeetCode (easy) 1646. Get Maximum in Generated Array (1) | 2024.05.23 |