๊ธฐ๋ก๋ฐฉ

BOJ_12873 : ๊ธฐ๋…ํ’ˆ ๋ณธ๋ฌธ

CodingTest/Python

BOJ_12873 : ๊ธฐ๋…ํ’ˆ

Soom_1n 2022. 8. 15. 20:44

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

12873๋ฒˆ: ๊ธฐ๋…ํ’ˆ

๋ฐฑ์ค€์ด๋Š” BOJ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์บ ํ”„ ์ฐธ๊ฐ€์ž ์ค‘ ํ•œ ๋ช…์—๊ฒŒ ๊ธฐ๋…ํ’ˆ์„ ์ฃผ๋ ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ๋งŽ์€ ์ฐธ๊ฐ€์ž ์ค‘์—์„œ ์–ด๋–ค ์‚ฌ๋žŒ์„ ๋ฝ‘์•„์„œ ๊ธฐ๋…ํ’ˆ์„ ์ค˜์•ผํ•˜๋Š”์ง€ ๊ณ ๋ฏผ์ด ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ฐฑ์ค€์ด๋Š” ๊ฒŒ์ž„์„

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • 1~N์›์†Œ ์ค‘ 1, 2, 3...์˜ 3์ œ๊ณฑ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉฐ 1๊ฐœ๊ฐ€ ๋‚จ์„๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

from collections import deque
import math

N = int(input())
t = 0
member = deque(range(1,N+1))

while len(member) != 1:
    t += 1
    member.rotate(-((int(math.pow(t,3))%len(member))-1))
    member.popleft()
print(member.pop())

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ๋ฐํฌ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•ด rotate()์™€ popleft()๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
    • ๋ฌธ์ œ์—์„œ ๋ฐฑ์ค€์ด์˜ ์ด๋™์„ ํ์˜ rotate()๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.
    • ๋ฐ˜๋ณต์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ „์ฒด ๋ฐํฌ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ„์–ด ์ฃผ์—ˆ๋‹ค.
    • rotate()๋ฐฉํ–ฅ์„ popleft() -> append() ๋ฐฉํ–ฅ์œผ๋กœ ํ•˜๊ธฐ์œ„ํ•ด -1๋ฅผ ๊ณฑํ•ด ์Œ์ˆ˜๋กœ ๋งŒ๋“ ๋‹ค.
      (0์€ ์ •์ง€, ์–‘์ˆ˜๋Š” pop() ๋ฐฉํ–ฅ)

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์›์†Œ์˜ ์‚ญ์ œ๋ฅผ ๋ ๋ถ€๋ถ„์—์„œ ์ง„ํ–‰ํ•˜๊ณ , ๋ฐฑ์ค€์ด์˜ ์ด๋™์„ ํŽธํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐํฌ๋ฅผ ์ผ๋Š”๋ฐ ์•Œ๋งž๊ฒŒ ์‚ฌ์šฉํ•œ ๊ฒƒ ๊ฐ™๋‹ค.
  • ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•ด์„œ pop(์ธ๋ฑ์Šค)๋กœ ์ง€์›Œ์ค„ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ ํ๋ผ๊ณ  ํ•  ์ˆ˜ ์—†์„๊ฒƒ์ด๋‹ค.

728x90

'CodingTest > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_15828 : Router  (0) 2022.08.16
BOJ_2161 : ์นด๋“œ1  (0) 2022.08.16
BOJ_18258 : ํ 2  (0) 2022.08.15
BOJ_1935 : ํ›„์œ„ ํ‘œ๊ธฐ์‹2  (0) 2022.08.14
BOJ_17608 : ๋ง‰๋Œ€๊ธฐ  (0) 2022.08.14