๋ฌธ์
๋ฆฟ์ฝ๋ 1823. Find the Winner of the Circular Game
https://leetcode.com/problems/find-the-winner-of-the-circular-game/solutions/
์ฝ๋
class Solution:
def findTheWinner(self, n: int, k: int) -> int:
circle = [i for i in range(1, n+1)]
count = 1
turn = 0
while len(circle) != 1:
if count == k:
circle.pop(turn)
count = 1
if turn == len(circle):
turn = 0
continue
if turn >= len(circle) - 1:
turn = 0
else:
turn += 1
count += 1
return circle[0]
ํ์ด
circle = [i for i in range(1, n+1)]
count = 1
turn = 0
์ด๊ธฐํ ์์ ์ ํ๋ค.
circle ๋ฐฐ์ด์ 1๋ถํฐ n๊น์ง ๊ฒ์์ ์ฐธ๊ฐํ๋ ์ฌ๋๋ค์ ๋ฒํธ๋ฅผ ๋ด๋๋ค.
count๋ ํ์ฌ๋์ฉ ์ฐจ๋ก๋ฅผ ์ด๋ ํ ๋๋ง๋ค 1์ฉ ์ฆ๊ฐํ๋ ๋ณ์๋ค.
turn์ ๋๊ตฌ ์ฐจ๋ก์ธ์ง ๋ํ๋ด๋ ์ธ๋ฑ์ค ๋ณ์๋ค.
while len(circle) != 1:
circle ๋ฐฐ์ด์์ ์น์ 1๋ช ์ด ๋์ฌ๋๊น์ง ๋ค์์ ์์ ์ ๋ฐ๋ณตํ๋ค.
if count == k:
circle.pop(turn)
count = 1
if turn == len(circle):
turn = 0
continue
if turn >= len(circle) - 1:
turn = 0
else:
turn += 1
count += 1
turn์ 1์ฉ ๋๋ฆฌ๋ค๊ฐ ๋จ์์๋ ์ฌ๋๋ค์ ์์ ์ค ๋ง์ง๋ง๊น์ง ์๋ค๋ฉด ๋ค์ ์ฒ์์ ์ฌ๋์ผ๋ก ์์๊ฐ ๋์๊ฐ ์ ์๊ฒ 0์ผ๋ก ์ค์ ํ๋ค.
turn์ 1์ฉ ๋๋ฆฌ๋ฉด์ count๋ 1์ฉ ๋๋ฆฐ๋ค.
๋ง์ฝ count๊ฐ k์ ๊ฐ์์ง๋ค๋ฉด,
๋น์ ์์์ ์ฌ๋์ ํจ๋ฐฐ์ด๋ฏ๋ก ํด๋น ์ฌ๋์ pop ํ๋ค.
count๋ ๋ค์ 1๋ก ์ด๊ธฐํํ๊ณ
popํ๊ณ ๋์ turn์ด ๋จ์์๋ ์ฌ๋๋ค ์ค ๋ง์ง๋ง์ ๊ฐ๋ฆฌํค๊ณ ์๋ค๋ฉด, ๋งจ ์ฒ์์ ์ฌ๋์ผ๋ก ์์๋ฅผ ์ง์ ํ๊ฒ turn์ 0์ผ๋ก ์ค์ ํ๋ค.
return circle[0]
๋ง์ง๋ง ๋จ์์๋ ์น์๋ฅผ ๋ฐํํ๋ค.
๋ค๋ฅธ ์ฝ๋
class Solution:
def findTheWinner(self, n: int, k: int) -> int:
k = k-1
index = 0
li = [i for i in range(1,n+1)]
def cal(k,index):
if len(li) == 1:
return li[0]
index = (index + k)% len(li)
del li[index]
return cal(k,index)
return cal(k,index)
ํ์ด
k = k-1
index = 0
li = [i for i in range(1,n+1)]
์ด๊ธฐํ ์์ ์ ํ๋ค.
k๋ฅผ 1 ๊ฐ์์ํค๊ณ
index๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๊ณ
li ๋ฐฐ์ด์ 1๋ถํฐ n๊น์ง ์ซ์๋ฅผ ๋ด๋๋ค.
def cal(k,index):
if len(li) == 1:
return li[0]
index = (index + k)% len(li)
del li[index]
return cal(k,index)
index๋ฅผ (index + k_ % len(li)๋ก ์ ๋ฐ์ดํธํ๊ณ
li์์ index ์์น์ ์ฐธ๊ฐ์๋ฅผ ์ญ์ ํ๋ค.
์ด ์์ ์ li์ ์์๊ฐ ํ๋๋ง ๋ค์ด์์๋ ๊น์ง๋ง ์ฌ๊ท์ ์ผ๋ก ๋ฐ๋ณตํ๋ค.
li์ ์น์ ํ๋ช ๋ง ๋จ๋๋ค๋ฉด ๊ทธ ์น์๋ฅผ ๋ฐํํ๋ค.
return cal(k,index)
์ฌ๊ทํจ์ cal์์ ๋ฐํ๋ ์ต์ข ์น์ ํ๋ช ์ ๋ฐํํ๋ค.
'์ฝ๋ฉํ ์คํธ๐ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฆฟ์ฝ๋] Minimum Add to Make Parentheses Valis (0) | 2024.06.25 |
---|---|
[๋ฆฟ์ฝ๋] Removing Stars From a String (0) | 2024.06.24 |
[๋ฐฑ์ค] ๊ฑธ๊ทธ๋ฃน ๋ง์คํฐ ์ค์์ด (0) | 2024.06.21 |
[๋ฐฑ์ค] ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2024.06.20 |
[๋ฐฑ์ค] ์ ์ฐพ๊ธฐ (0) | 2024.06.19 |