๊ณต๋˜์ง€๊ธฐ

Contents

๊ณต๋˜์ง€๊ธฐ#

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
์ •๋‹ต๋ฅ : 81%
์˜์—ญ:์ˆ˜ํ•™
๋‚˜์˜ ์˜ˆ์ƒ ์ •๋‹ต๋ฅ :63.8%
์ƒ์Šน๋ฅ :1.5%

๋ฌธ์ œ ์„ค๋ช…

๋จธ์“ฑ์ด๋Š” ์นœ๊ตฌ๋“ค๊ณผ ๋™๊ทธ๋ž—๊ฒŒ ์„œ์„œ ๊ณต ๋˜์ง€๊ธฐ ๊ฒŒ์ž„์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์€ 1๋ฒˆ๋ถ€ํ„ฐ ๋˜์ง€๋ฉฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ๋ช…์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๊ทธ๋‹ค์Œ ์‚ฌ๋žŒ์—๊ฒŒ๋งŒ ๋˜์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นœ๊ตฌ๋“ค์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด numbers์™€ ์ •์ˆ˜ K๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, k๋ฒˆ์งธ๋กœ ๊ณต์„ ๋˜์ง€๋Š” ์‚ฌ๋žŒ์˜ ๋ฒˆํ˜ธ๋Š” ๋ฌด์—‡์ธ์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

2 < numbers์˜ ๊ธธ์ด < 100
0 < k < 1,000
numbers์˜ ์ฒซ ๋ฒˆ์งธ์™€ ๋งˆ์ง€๋ง‰ ๋ฒˆํ˜ธ๋Š” ์‹ค์ œ๋กœ ๋ฐ”๋กœ ์˜†์— ์žˆ์Šต๋‹ˆ๋‹ค.
numbers๋Š” 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฉฐ ๋ฒˆํ˜ธ๋Š” ์ˆœ์„œ๋Œ€๋กœ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.

# input setting
problem_num = '๊ณต๋˜์ง€๊ธฐ'

import os, sys
path = os.getcwd() + f'\\txt\\{problem_num}'  + '.txt'
sys.stdin = open(path,'r')
num = list(map(int,sys.stdin.readline().strip().split(',')))
k = int(sys.stdin.readline())
from collections import deque
def solution(numbers, k):
    dq = deque(numbers)
    for i in range(k-1):
        dq.rotate(-2)
    return dq[0]
solution(num,k)
3

์•ฝ๊ฐ„ ์› ๊ด€๋ จ ๋ฌธ์ œ๋Š” ๋ณดํ†ต queue์™€ ๊ด€๋ จ์ด ์žˆ์„ ํ™•๋ฅ ์ด ํฌ๊ณ , queue๋Š” ์„ ์ž…์„ ์ถœ์˜ ๊ฐœ๋…์œผ๋กœ ๋“ค์–ด๊ฐ„๊ฒƒ์„ ๋˜ฅ๊พธ๋ฉ์— ๋‹ค์‹œ ๋„ฃ๋Š” ์‹์œผ๋กœ ํ™œ์šฉ๋œ๋‹ค. ๋จผ์ € ๋“ค์–ด์˜จ ๋†ˆ์€ ๋จผ์ € ๋‚˜๊ฐ€๋ฉด์„œ ๋™์‹œ์— ๋’ค๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ. rotate n=-2๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽธํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.

short coding#

def solution(numbers, k):
    return numbers[2 * (k - 1) % len(numbers)]

๋‚˜๋Š” O(k)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„ ๋ฐ˜๋ฉด, ์ด ์•„์ฃผ ๋‹จ์ดํ•ด๋ณด์ด๋Š” ํ•จ์ˆ˜๋Š” O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค. ์ซ€๋‹ค์ซ€๋‹ค. ๊ฐ€๋…์„ฑ์€ ๋‚ด ์ฝ”๋“œ๊ฐ€ ์ข‹์ง€๋งŒ ์œ„์˜ ์ฝ”๋“œ ์ž์ฒด๋ฅผ ์ดํ•ดํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.

์œ„์—์„œ๋Š” k-1 * 2 % len(numbers) ๋ผ๋Š” index๋ฅผ ์ฐพ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ, 2๋Š” 2์นธ์”ฉ ์›€์ง์ด๋Š” ๊ฒƒ์ด๊ณ  ์›ํ˜•์—์„œ ํšŒ์ „ํ•˜๋ฉด์„œ ์›€์ง์ด๋Š” ๊ฒƒ์ด๊ธฐ ๋–„๋ฌธ์— ๋งˆ์ง€๋ง‰์— ๊ธธ์ด๋กœ ๋‚˜๋ˆ ์„œ ๋‚˜๋จธ์ง€๋ฅผ ์ทจํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Š” ์›ํ˜• ํšŒ์ „์˜ ํŠน์„ฑ์„ ๊ฐ„๊ฒฐํ•œ ์ธ๋ฑ์Šค ์—ฐ์‚ฐ์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๊ฒƒ์œผ๋กœ ์ข‹์€ ํ’€์ด๋ผ๊ณ  ๋ณด์—ฌ์ง„๋‹ค. ํŠนํžˆ๋‚˜ ๊ณ„์‚ฐ ํšจ์œจ์„ฑ์ด ๋Œ€๋‹ค๋‚˜๋‹ค.

for index,i in enumerate(range(5)):
    print(index,i)
0 0
1 1
2 2
3 3
4 4