동까의 코딩

[99클럽] 33일차 TIL 본문

문제 풀이/99클럽

[99클럽] 33일차 TIL

동까의 코딩 2024. 6. 22. 23:11
반응형

https://leetcode.com/problems/find-the-winner-of-the-circular-game/

 

class Node:
    def __init__(self, v):
        self.val = v
        self.next = None
        self.prev = None

class Solution:
    def findTheWinner(self, n: int, k: int) -> int:
        start_node = cur_node = Node(1)
        prev_node = None
        for i in range(2, n + 1):
            new_node = Node(i)
            cur_node.next = new_node
            cur_node.prev = prev_node
            prev_node = cur_node
            cur_node = new_node
        cur_node.next = start_node
        cur_node.prev = prev_node
        start_node.prev = cur_node

        index = 1
        cur_node = start_node
        while cur_node.next.val != cur_node.val:
            if index % k == 0:
                cur_node.prev.next = cur_node.next
                cur_node.next.prev = cur_node.prev
            cur_node = cur_node.next
            index += 1
        return cur_node.val
반응형

'문제 풀이 > 99클럽' 카테고리의 다른 글

[99클럽] 35일차 TIL  (0) 2024.06.25
[99클럽] 34일차 TIL  (0) 2024.06.23
[99클럽] 32일차 TIL  (1) 2024.06.21
[99클럽] 31일차 TIL  (0) 2024.06.20
[99클럽] 30일차 TIL  (0) 2024.06.19