๐ฃ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ถ๐ป๐ด๐ป/[๐๐ฒ๐ญ๐ก๐จ๐ง] ๐๐ฅ๐ ๐จ๐ซ๐ข๐ญ๐ก๐ฆ
[Python] ๋ฐฑ์ค 1201 & ๋ฐฑ์ค 1158
๐คRyusun๐ค
2023. 5. 27. 15:54
#๋ฐฑ์ค 1201
from collections import deque
n, m = map(int, input().split(" "))
targets = list(map(int, input().split(' ')))
dq = deque(range(1, n+1))
# 10 3 [1,2,3,4,5,6...]
# 2 9 5
cnt = 0
for i in targets:
if dq[0] == i:
dq.popleft()
continue
index = dq.index(i) #์ฐพ๊ณ ์ ํ๋ ๊ฐ์ ์ธ๋ฑ์ค ์์น๊ฐ 9์ด๋ฉด
if index <= len(dq)//2: #3 < 5
dq.rotate(-index)
cnt += index
else:
dq.rotate(len(dq)-index)
cnt += len(dq)-index
dq.popleft()
print(cnt)
#๋ฐฑ์ค 1158 ์์ธํธ์ค ๋ฌธ์
from collections import deque
n, m = map(int, input().split(' '))
numbers= [i for i in range(1, n+1)]
dq = deque(numbers)
answer = []
while dq:
dq.rotate(-(m-1))
num = dq.popleft()
answer.append(num)
print(f'<{", ".join(str(x) for x in answer)}>')
๐ Points
- deque.append(item): item์ ๋ฐํฌ์ ์ค๋ฅธ์ชฝ ๋์ ์ฝ์ ํ๋ค.
- deque.appendleft(item): item์ ๋ฐํฌ์ ์ผ์ชฝ ๋์ ์ฝ์ ํ๋ค.
- deque.pop(): ๋ฐํฌ์ ์ค๋ฅธ์ชฝ ๋ ์๋ฆฌ๋จผํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๋์์ ๋ฐํฌ์์ ์ญ์ ํ๋ค.
- deque.popleft(): ๋ฐํฌ์ ์ผ์ชฝ ๋ ์๋ฆฌ๋จผํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๋์์ ๋ฐํฌ์์ ์ญ์ ํ๋ค.
- deque.remove(item): item์ ๋ฐํฌ์์ ์ฐพ์ ์ญ์ ํ๋ค.
- deque.index(x[, start[, stop]]): ํ์์ x์ ์์น๋ฅผ ๋ฐํํ๋ค.
- deque.rotate(k): ํ ์์ ์์๋ฅผ ์ฐ์ธก(๋ฐ์๊ณ๋ฐฉํฅ)์ผ๋ก k๋งํผ ์ด๋, k๊ฐ ์์์ผ ๊ฒฝ์ฐ ์ผ์ชฝ(์๊ณ๋ฐฉํฅ)์ผ๋ก k๋งํผ ์ด๋
- print(f'<',', '.join(str(x) for x in answer),'>',sep="") : <> ๊ณผ ์ถ๋ ฅ๊ฐ์ sep=""์ ํตํด์ ๋น์นธ์์ด ๋ถ์ด๊ณ ', '.join(str(x) for x in answer) ๋ฅผ ํตํด answer์๋ ์์(x)๋ค์ ๋ฌธ์(str)๋ก ๋ง๋ค๊ณ ๋์ด์ฐ๊ธฐ์ ์ฝค๋ง๋ฅผ ๋ถ์ธ๋ค.