๐ฅ Silver3
https://www.acmicpc.net/problem/1021


โ ์ ๋ตํ์ด
import sys
from collections import deque
input = sys.stdin.readline
n, m = map(int, input().split())
num_list = list(map(int, input().split()))
# 2๋ฒ๊ณผ 3๋ฒ ์ค ์ด๋ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ ์ง-> ์ค๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋น index๊ฐ ๊ฐ๊น์ด์ชฝ์ผ๋ก
q = deque([i for i in range(1, n + 1)])
result = 0
for num in num_list:
while True:
# ๋งจ์ ์์๊ฐ ๋น ์ ธ๋๊ฐ์์๋์ง ํ์ธ
if q[0] == num:
q.popleft()
break
idx = q.index(num)
mid = len(q) // 2
if idx <= mid:
# 2๋ฒ ๊ณผ์
q.append(q.popleft())
else:
# 3๋ฒ ๊ณผ์
q.appendleft(q.pop())
result += 1
print(result)
#34160 64
๋ฉ๋ชจ๋ฆฌ | ์คํ์๊ฐ |
34160 | 64 |
์ด ๋ฌธ์ ๋ ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ์ค๋๊ฑธ๋ฆฐ ๋ฌธ์ ์ง, ์๊ฐ๋ณด๋ค ์ ๊ทผ๋ฐฉ์์ ์ฌ์ ๋๊ฒ ๊ฐ๋ค.
3๋ฒ๊ณผ์ ์ ํตํด ๋งจ์ค๋ฅธ์ชฝ ์์๊ฐ ๋งจ์์ผ๋ก ์ฌ๋๋ง ์นด์ดํธ๋ฅผ ํ๊ณ , ๋ฝ์๋ด๋๊ฑด queue์ฒ๋ผ ๋งจ์์์๋ง ๋ฝ๋ 1๋ฒ๊ณผ์ ์ ํตํด ์ผ์ด๋๋๊ฒ์ธ๋ฐ
๋งจ๋ค์์๋ง ์์ด๋ ๋ฐ๋ก ์์๋ฅผ ๊บผ๋ผ์ ์๋ค๊ณ ์๊ฐํด ์นด์ดํธ๋ฅผ ํ์ง ์๋ค๋ณด๋ ๋ฌธ์ ์ดํด์ ์ค๋์๊ฐ์ด ์์๋์๋ค.
2,3๋ฒ ๋ฐฉ๋ฒ์ค ์ด๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ง ๊ฒฐ์ ํ๊ณ ์นด์ดํธ๋ง ํด์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์, ์ด๋ค๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผํ ์ง๊ฐ ํฌ์ธํธ์ธ๋ฐ
๋ฝ์๋ด๊ณ ์ถ์ ์์๊ฐ ๊ฐ์ด๋ฐ๋ฅผ ๊ธฐ์ ์ผ๋ก ์ผ์ชฝ์ ๊ฐ๊น์ฐ๋ฉด 2๋ฒ, ์ค๋ฅธ์ชฝ์ ๊ฐ๊น์ฐ๋ฉด 3๋ฒ์ ์ ํํ๋ฉด ๋๊ธฐ ๋๋ฌธ์
๋ฝ์์ผํ๋ idx๋ฅผ ๊ตฌํ๊ณ , mid ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ๋ค์ ๋น๊ตํด์ฃผ๋ฉด ๋๋ค!
'๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค-Python] ๋์ ์๋ฅด๊ธฐ : 1654๋ฒ (0) | 2024.06.07 |
---|---|
[๋ฐฑ์ค-Python] ๋จ์ด ์ ๋ ฌ : 1181๋ฒ (0) | 2024.06.07 |
[๋ฐฑ์ค-Python] ํ๋ฆฐํฐ ํ : 1966๋ฒ (0) | 2024.06.05 |
[๋ฐฑ์ค-Python] ํ์ ํฐ๋จ๋ฆฌ๊ธฐ : 2346๋ฒ (1) | 2024.06.05 |
[๋ฐฑ์ค-Python] ์ค๋ชฉ : 2615๋ฒ (0) | 2024.06.04 |
๐ฅ Silver3
https://www.acmicpc.net/problem/1021


โ ์ ๋ตํ์ด
import sys
from collections import deque
input = sys.stdin.readline
n, m = map(int, input().split())
num_list = list(map(int, input().split()))
# 2๋ฒ๊ณผ 3๋ฒ ์ค ์ด๋ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ ์ง-> ์ค๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋น index๊ฐ ๊ฐ๊น์ด์ชฝ์ผ๋ก
q = deque([i for i in range(1, n + 1)])
result = 0
for num in num_list:
while True:
# ๋งจ์ ์์๊ฐ ๋น ์ ธ๋๊ฐ์์๋์ง ํ์ธ
if q[0] == num:
q.popleft()
break
idx = q.index(num)
mid = len(q) // 2
if idx <= mid:
# 2๋ฒ ๊ณผ์
q.append(q.popleft())
else:
# 3๋ฒ ๊ณผ์
q.appendleft(q.pop())
result += 1
print(result)
#34160 64
๋ฉ๋ชจ๋ฆฌ | ์คํ์๊ฐ |
34160 | 64 |
์ด ๋ฌธ์ ๋ ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ์ค๋๊ฑธ๋ฆฐ ๋ฌธ์ ์ง, ์๊ฐ๋ณด๋ค ์ ๊ทผ๋ฐฉ์์ ์ฌ์ ๋๊ฒ ๊ฐ๋ค.
3๋ฒ๊ณผ์ ์ ํตํด ๋งจ์ค๋ฅธ์ชฝ ์์๊ฐ ๋งจ์์ผ๋ก ์ฌ๋๋ง ์นด์ดํธ๋ฅผ ํ๊ณ , ๋ฝ์๋ด๋๊ฑด queue์ฒ๋ผ ๋งจ์์์๋ง ๋ฝ๋ 1๋ฒ๊ณผ์ ์ ํตํด ์ผ์ด๋๋๊ฒ์ธ๋ฐ
๋งจ๋ค์์๋ง ์์ด๋ ๋ฐ๋ก ์์๋ฅผ ๊บผ๋ผ์ ์๋ค๊ณ ์๊ฐํด ์นด์ดํธ๋ฅผ ํ์ง ์๋ค๋ณด๋ ๋ฌธ์ ์ดํด์ ์ค๋์๊ฐ์ด ์์๋์๋ค.
2,3๋ฒ ๋ฐฉ๋ฒ์ค ์ด๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ง ๊ฒฐ์ ํ๊ณ ์นด์ดํธ๋ง ํด์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์, ์ด๋ค๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผํ ์ง๊ฐ ํฌ์ธํธ์ธ๋ฐ
๋ฝ์๋ด๊ณ ์ถ์ ์์๊ฐ ๊ฐ์ด๋ฐ๋ฅผ ๊ธฐ์ ์ผ๋ก ์ผ์ชฝ์ ๊ฐ๊น์ฐ๋ฉด 2๋ฒ, ์ค๋ฅธ์ชฝ์ ๊ฐ๊น์ฐ๋ฉด 3๋ฒ์ ์ ํํ๋ฉด ๋๊ธฐ ๋๋ฌธ์
๋ฝ์์ผํ๋ idx๋ฅผ ๊ตฌํ๊ณ , mid ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ๋ค์ ๋น๊ตํด์ฃผ๋ฉด ๋๋ค!
'๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค-Python] ๋์ ์๋ฅด๊ธฐ : 1654๋ฒ (0) | 2024.06.07 |
---|---|
[๋ฐฑ์ค-Python] ๋จ์ด ์ ๋ ฌ : 1181๋ฒ (0) | 2024.06.07 |
[๋ฐฑ์ค-Python] ํ๋ฆฐํฐ ํ : 1966๋ฒ (0) | 2024.06.05 |
[๋ฐฑ์ค-Python] ํ์ ํฐ๋จ๋ฆฌ๊ธฐ : 2346๋ฒ (1) | 2024.06.05 |
[๋ฐฑ์ค-Python] ์ค๋ชฉ : 2615๋ฒ (0) | 2024.06.04 |