From 9fe7844d8621cd8cc30b5269e9236e3ac51a1542 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Mon, 8 Jul 2024 00:39:05 -0600 Subject: 1823. find the winner of the circular game --- find_winner_circular_game.c | 23 +++++++++++++++++++++++ find_winner_circular_game.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 find_winner_circular_game.c create mode 100644 find_winner_circular_game.py diff --git a/find_winner_circular_game.c b/find_winner_circular_game.c new file mode 100644 index 0000000..a659fc3 --- /dev/null +++ b/find_winner_circular_game.c @@ -0,0 +1,23 @@ +// 1823. Find the Winner of the Circular Game +#include "leetcode.h" + +/* + * there are 'n' friends that are playing a game. the friends are sitting in a + * circule and are numbered from 1 to 'n' in clockwise order. more formally, + * moving clockwise from the i'th friend brings you to the '(i + 1)'th friend + * for '1 <= i < n', and moving clockwise from the n'th friend brings you to the + * 1st friend. given the number of friends, 'n' and an integer 'k', return the + * winner of the game. + */ + +int findTheWinner(int n, int k) { + int ans = 0; + for (int i = 1; i <= n; i++) + ans = (ans + k) % i; + return ans + 1; +} + +int main() { + printf("%d\n", findTheWinner(5, 2)); // expect: 3 + printf("%d\n", findTheWinner(6, 5)); // expect: 1 +} diff --git a/find_winner_circular_game.py b/find_winner_circular_game.py new file mode 100644 index 0000000..9e6a621 --- /dev/null +++ b/find_winner_circular_game.py @@ -0,0 +1,29 @@ +# 1823. Find the Winner of the Circular Game + +""" +there are 'n' friends that are playing a game. the friends are sitting in a +circule and are numbered from 1 to 'n' in clockwise order. more formally, +moving clockwise from the i'th friend brings you to the '(i + 1)'th friend +for '1 <= i < n', and moving clockwise from the n'th friend brings you to the +1st friend. given the number of friends, 'n' and an integer 'k', return the +winner of the game. +""" + + +class Solution(object): + def findTheWinner(self, n, k): + """ + :type n: int + :type k: int + :rtype: int + """ + ans = 0 + for i in range(1, n + 1): + ans = (ans + k) % i + return ans + 1 + + +if __name__ == "__main__": + obj = Solution() + print(obj.findTheWinner(5, 2)) + print(obj.findTheWinner(6, 5)) -- cgit v1.2.3