2023. 3. 1. 01:05ใ๐ฑ Algorithm
์ ์ด์งํ ๋ฌธ์ ์ง๋ง ํ์ด ๋ฐฉ๋ฒ์ด ๋ง์์ ๋ค์ง ์์์ ๋ค๋ฅธ ๋ถ๋ค ์ฝ๋๋ ๋น๊ตํด๋ดค๋ค.
๋ด๊ฐ ํผ ์ฝ๋
deque ์ ์ฌ์ฉํ๋ค.
๋ฌธ์ ์์ ์ํ๋ ๊ฒ์ ์ถ์ํ ์ฐจ์ ์๋ฅผ ๊ตฌํ๋ ๊ฒ. ์ฆ first in first out ์ ์๋ฐฐํ ๊ฒฝ์ฐ๋ฅผ ์นด์ดํธ ํ๋ ๊ฒ์ด๋ค.
q1 ์ด๋ deque() ์ ํฐ๋์ ๋ค์ด๊ฐ ์์๋๋ก ์์๋ฅผ ๋ด๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐจ๋ก๋๋ก ํฐ๋์ ๋น ์ ธ๋์ค๋ ์์(out) ๊ฐ q1 ์ ์ฒซ๋ฒ์งธ์ ์ผ์นํ์ง ์๋ค๋ฉด, ํด๋น ์์๋ ์ถ์ํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ ์ ์๋ค.
์ถ์ํ ์ฐจ์ ๋ํ ์นด์ดํธ๋ฅผ ์ฌ๋ ค์ฃผ๊ณ deque ์์ ํด๋น ์์๋ฅผ ์ญ์ ํด์ฃผ์
from collections import deque
answer = 0
n = int(input())
q1 = deque()
for i in range(n*2):
if i < n:
q1.append(input())
else:
out = input()
if out != q1[0]:
q1.remove(out)
answer += 1
else:
q1.popleft()
print(answer)
๋ค ํ๊ณ ๋ณด๋ q1.remove(out) ๋ผ์ธ์ด ๋ง์์ ๋ค์ง ์์๋ค.
๐ ์ฐธ๊ณ ํ ์ฝ๋
์ด ๋ถ์ for ๋ฌธ์ ์ข ๋ง์ด ์ฌ์ฉํ์ จ์ง๋ง, n ์ด 1000๋ฐ์ ๋์ง ์์ผ๋ฏ๋ก ์๊ฐ๋ณต์ก๋ ๋ฌธ์ ๋ก๋ถํฐ๋ ์์ ๋กญ๋ค. (์ด์ค for ๋ฌธ ๊ด์ถ)
Exit ๋ฐฐ์ด์ ํฐ๋์ ์ ์ฅํ ์์๋ฅผ ์ฐจ๋ก๋ก ์ ์ฅํ๋ค.
์๋ฅผ ๋ค์ด , a b c d e ์์๋ก ์ ์ฅํ๊ณ , d c a b e ์์๋ก ํด์ฅํ๋ค๋ฉด Exit ๋ฐฐ์ด์ [3, 2, 0, 1, 4] ๋ก ์ ์ฅ๋๋ค. (์ฒซ ์์๋ 0)
์ด ์ผ์ด์ค์ ์ถ์ ์นด์ดํธ๋ 2 ๊ฐ ๋๋ค (d, c ๊ฐ ์ถ์๋งจ)
์ฆ Exit ๋ฐฐ์ด์์ ์์ ๋ณด๋ค ๋ค์ ์์นํ ์์์ ๊ฐ์ด ์๋ค๋ฉด, ํด๋น ์์๋ ์ถ์๋งจ์ธ ๊ฒ์ด๋ค.
์๋ ์ฝ๋์์ ์ด์ค for ๋ฌธ์ ์ฌ์ฉํด ์์ ๋ณด๋ค ๋ค์ ์์นํ ์์ ์ค ๊ฐ์ด ์์ ๊ฒ์ ๊ฐ์๋ฅผ ์นด์ดํธํ๋ค.
์ด์ค for ๋ฌธ์ ์ฌ์ฉํ์ง ์๋ ์ชฝ์ผ๋ก ์ ๊ทผํ ์ ์๋์ง ์๊ฐํด๋ด์ผ๊ฒ ๋ค.
N = int(input())
Entry = {input().rstrip() : i for i in range(N)}
Exit = list(int(Entry[input().rstrip()]) for _ in range(N))
res = 0
for i in range(N):
for j in range(i, N):
if Exit[i] > Exit[j]:
res += 1
break
print(res)
'๐ฑ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 14225 ๋ถ๋ถ์์ด์ ํฉ ํ์ด์ฌ (0) | 2023.02.25 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ชจ์์ฌ์ ํ์ด์ฌ (0) | 2021.10.07 |
ํ๋ก๊ทธ๋๋จธ์ค [lv3] floodfill ํ์ด์ฌ (0) | 2021.09.01 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ์ฟผ๋์์ถ ํ ๊ฐ์ ์ธ๊ธฐ ํ์ด์ฌ (0) | 2021.08.31 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฐฉ๋ฌธ๊ธธ์ด ํ์ด์ฌ (0) | 2021.08.29 |