์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ”ฅ/๋ฐฑ์ค€

๋ฐฑ์ค€ 2164๋ฒˆ: ์นด๋“œ2(S4)

23.8 2023. 12. 25. 00:47
๋ฐ˜์‘ํ˜•

 

https://www.acmicpc.net/problem/2164

 

2164๋ฒˆ: ์นด๋“œ2

N์žฅ์˜ ์นด๋“œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์นด๋“œ๋Š” ์ฐจ๋ก€๋กœ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ์œผ๋ฉฐ, 1๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์œ„์—, N๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์•„๋ž˜์ธ ์ƒํƒœ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์นด๋“œ๊ฐ€ ๋†“์—ฌ ์žˆ๋‹ค. ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์นด๋“œ๊ฐ€

www.acmicpc.net

 

โœจ ๋ฌธ์ œ

 

N์žฅ์˜ ์นด๋“œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์นด๋“œ๋Š” ์ฐจ๋ก€๋กœ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ์œผ๋ฉฐ, 1๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์œ„์—, N๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์•„๋ž˜์ธ ์ƒํƒœ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์นด๋“œ๊ฐ€ ๋†“์—ฌ ์žˆ๋‹ค. ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์นด๋“œ๊ฐ€ ํ•œ ์žฅ ๋‚จ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋œ๋‹ค. ์šฐ์„ , ์ œ์ผ ์œ„์— ์žˆ๋Š” ์นด๋“œ๋ฅผ ๋ฐ”๋‹ฅ์— ๋ฒ„๋ฆฐ๋‹ค. ๊ทธ ๋‹ค์Œ, ์ œ์ผ ์œ„์— ์žˆ๋Š” ์นด๋“œ๋ฅผ ์ œ์ผ ์•„๋ž˜์— ์žˆ๋Š” ์นด๋“œ ๋ฐ‘์œผ๋กœ ์˜ฎ๊ธด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด N=4์ธ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž. ์นด๋“œ๋Š” ์ œ์ผ ์œ„์—์„œ๋ถ€ํ„ฐ 1234 ์˜ ์ˆœ์„œ๋กœ ๋†“์—ฌ์žˆ๋‹ค. 1์„ ๋ฒ„๋ฆฌ๋ฉด 234๊ฐ€ ๋‚จ๋Š”๋‹ค. ์—ฌ๊ธฐ์„œ 2๋ฅผ ์ œ์ผ ์•„๋ž˜๋กœ ์˜ฎ๊ธฐ๋ฉด 342๊ฐ€ ๋œ๋‹ค. 3์„ ๋ฒ„๋ฆฌ๋ฉด 42๊ฐ€ ๋˜๊ณ , 4๋ฅผ ๋ฐ‘์œผ๋กœ ์˜ฎ๊ธฐ๋ฉด 24๊ฐ€ ๋œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ 2๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ๋‚˜๋ฉด, ๋‚จ๋Š” ์นด๋“œ๋Š” 4๊ฐ€ ๋œ๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ œ์ผ ๋งˆ์ง€๋ง‰์— ๋‚จ๊ฒŒ ๋˜๋Š” ์นด๋“œ๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

 

โœจ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

 

- ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ํ๋ฅผ ๋งŒ๋“ค๊ณ  1~N๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ํ์— ์ž…๋ ฅ์œผ๋กœ ๋„ฃ์–ด์ค€๋‹ค. ํ๋Š” ํŒŒ์ด์ฌ์˜ deque ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ๋ณ„๋„๋กœ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

- ์ง์ ‘ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ํŒŒ์ด์ฌ์˜ list๊ฐ€ ์•„๋‹ˆ๋ผ, linked list๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ํŒŒ์ด์ฌ์˜ list๋Š” Array list ์ค‘์—์„œ Dynamic array๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, array list๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋ฌธ์ œ๋กœ ์ธํ•ด์„œ queue์—๋Š” linked list๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

- ์šฐ๋ฆฌ๊ฐ€ ๋ฐ˜๋ณตํ•ด์•ผํ•˜๋Š” ํ–‰์œ„๋Š” ๋‘ ๊ฐ€์ง€์ด๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ์ œ์ผ ์œ„์— ์žˆ๋Š” ์นด๋“œ ๋ฒ„๋ฆฌ๊ธฐ. ์ œ์ผ ์œ„ => ํ๋ฅผ ์ด์šฉํ•ด์„œ popleft๋ฅผ ํ•ด์ค€๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” ์ œ์ผ ์œ„์˜ ์นด๋“œ๋ฅผ ์ œ์ผ ์•„๋ž˜์— ์žˆ๋Š” ์นด๋“œ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ธ๋ฐ ์ด๋Š” popleft๋กœ element๋ฅผ ๋นผ์ฃผ๋ฉด์„œ ๋ณ€์ˆ˜์— ์ €์žฅํ•ด ๋‘” ๋’ค, ์ €์žฅํ•œ ๋ณ€์ˆ˜๋ฅผ append๋ฅผ ์ด์šฉํ•ด์„œ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค,.

 

- ๋ฐ˜๋ณต๋ฌธ์˜ ์ข…๋ฃŒ ์กฐ๊ฑด์„ queue์˜ ๊ธธ์ด๊ฐ€ 1์ผ ๋•Œ๋กœ ์„ค์ •ํ•ด๋‘๊ณ  ์œ„์˜ ๋‘ ๊ฐ€์ง€ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 

 

โœจ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

 

์ฒ˜์Œ์— ์ข…๋ฃŒ์กฐ๊ฑด์„ while๋ฌธ ์•ˆ์— ๋„ฃ์—ˆ์„ ๋•Œ๋Š” ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋‚˜์„œ ์ข…๋ฃŒ ์กฐ๊ฑด์„ ์ดˆ๊ธฐ ๊ฐ’์œผ๋กœ ์ฃผ๋‹ˆ ํ•ด๊ฒฐ ๋˜์—ˆ๋‹ค.

 

๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋‚œ ์ฝ”๋“œ โฌ‡๏ธ

import sys
from collections import deque

def input():
    return sys.stdin.readline().rstrip()

N = int(input())


queue = deque()

for i in range(1, N+1):
    queue.append(i)

while(1):

    queue.popleft()

    if len(queue)==1 :
        break
       
    item = queue.popleft()
    queue.append(item)



print(queue.pop())

 

 

์„ฑ๊ณต ์ฝ”๋“œ โฌ‡๏ธ

import sys
from collections import deque

def input():
    return sys.stdin.readline().rstrip()

N = int(input())


queue = deque()

for i in range(1, N+1):
    queue.append(i)

while(len(queue)!=1):

    queue.popleft()
       
    item = queue.popleft()
    queue.append(item)


print(queue.pop())

 

 

 

728x90
๋ฐ˜์‘ํ˜•