๋ชฉ์ฐจ (OPEN)
์ผ๋ง์ ์ ์กธ์
ํ์์๊ฑด์ธ ์ฝํ
1์ฐจ ์ํ ๊ฒธ ๊ต๋ด ์ฝ๋ฉ ๊ฒฝ์ง๋ํ์ ์ฐธ์ฌํ์๋๋ฐ,
๋ ๋ฏธ๋ฃจ๋ฉด ๋ฌธ์ ๋ฅผ ๊น๋จน์ ๊ฒ ๊ฐ์์ ์ฐ์ ๊ฐ๋จํ ๊ธฐ๋กํด๋๋ ค๊ณ ํ๋ค ,,๐คง
๋ฐ๋ก ๋ฌธ์ ๋ฅผ ์ฌ๋ ค์ฃผ์์ง๋ ์์๊ณ , ๋ด๊ฐ ์ ์ถํ ํ์ผ๋ง ๋ค์ด๋ฐ์ ์ ์๊ฒ ๋ผ์์ด์
๋ฌธ์ ์ค๋ช
์ด ๋ง์ด ๋น์ฝํ ์๋ ์๋ค ..
๐ ๋ฌธ์
- n๊ฐ์ ๋ฒฝ๋์ด ์ฃผ์ด์ง๋ค.
- ์ฟผ๋ฆฌ 2๊ฐ์ง๊ฐ ์ฃผ์ด์ง๋ค.
1) `1 p x` ํํ์ ์ ๋ ฅ์ด ๋ค์ด์ค๋ฉด ๐๐ป p๋ฒ ๋ฒฝ๋์ x๋ฒ ์์ผ๋ก ๋ค์ ์น ํ๋ค.
2) `2 x` ํํ์ ์ ๋ ฅ์ด ๋ค์ด์ค๋ฉด ๐๐ป ๋ชจ๋ ๋ฒฝ๋์ x๋ฒ ์์ผ๋ก ๋ค์ ์น ํ๋ค. - ๋ชจ๋ ์ฟผ๋ฆฌ๋ฅผ ์ํํ ๋ค, ๊ฐ ๋ฒฝ๋์ ์ต์ข ์๊น์ ์ถ๋ ฅํด์ผ ํ๋ค.
์ฆ, ์ ์ฒด ์์น ๊ณผ ๋ถ๋ถ ์์น ์ด ์์ฌ ์์ ๋,
๊ฐ ๋ฒฝ๋์ ์ต์ข ์ํ๋ฅผ ์ด๋ป๊ฒ ํจ์จ์ ์ผ๋ก ๊ธฐ๋กํ ์ง๊ฐ ํต์ฌ์ด๋ค.
๐ก ์์ด๋์ด
์ฒ์์๋ ๋จ์ํ ์ฟผ๋ฆฌ๋ง๋ค ๋ฒฝ๋ ๋ฐฐ์ด์ ์ ๋ฐ์ดํธํ๋ ค๊ณ ํ์ง๋ง,
์ด๋ฐ ๋ฌธ์ ์์ ์๊ฐ ์ด๊ณผ ๋๊ฒ ํ๋๋ฒ์ด ์๋์ด์ .. ใ ใ
์ด๋ฐ ๋จ์ํ ๋ฐฉ๋ฒ์ ์๋ ๊ฑฐ๋ผ ์๊ฐํ๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํด๋ณด์๋ค.
๊ทธ๋์ ๋ ์ฌ๋ฆฐ ์ ๋ต์ ์๋์ ๊ฐ๋ค.
- ์ ์ฒด ์์น ์ ๋ฒฝ๋ ๋ฐฐ์ด์ ์
๋ฐ์ดํธ ํ์ง ์๊ณ ,
๋ณ์์ ๋ง์ง๋ง ์ ์ฒด ์์น ์๊ฐ๊ณผ ๋ง์ง๋ง ์ ์ฒด ์์น ์์๋ง ๊ธฐ๋กํ๋ค. - ๋ถ๋ถ ์์น ์ ๋ฒฝ๋ ๋ฐฐ์ด์ ์
๋ฐ์ดํธ ํด์ฃผ๊ณ ,
๋ณ์์ ๋ง์ง๋ง ๋ถ๋ถ ์์น ์๊ฐ์ ๊ธฐ๋กํด์ค๋ค.
(ํด๋น ๋ฒฝ๋์ ์ธ์ ๋ง์ง๋ง์ผ๋ก ์น ํ๋์ง) - ๋ง์ง๋ง์ ๊ฐ ๋ฒฝ๋์ ๊ฒ์ํ ๋
1) ๋ง์ฝ, ๋ถ๋ถ ์์น ์๊ฐ์ด ์ ์ฒด ์์น ์๊ฐ๋ณด๋ค ๋ฆ์ผ๋ฉด ๐๐ป ํด๋น ๋ธ๋ก์ ๋ถ๋ถ ์์น ์์์ผ๋ก ์น ํด์ค๋ค.
2) ๊ทธ๋ ์ง ์์ผ๋ฉด ๐๐ป ์ ์ฒด ์์น ์์์ผ๋ก ์น ํด์ค๋ค.
3) ์๋ฌด ๊ธฐ๋ก๋ ์์ผ๋ฉด ๐๐ป ์ด๊ธฐ ์์์ผ๋ก ์น ํด์ค๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๊ฐ ์ฟผ๋ฆฌ๋ฅผ O(1)์์ ์์ ํ๊ณ ,
๋ง์ง๋ง ์ถ๋ ฅ ๋จ๊ณ์์๋ง O(n)์ผ๋ก ๊ณ์ฐํ๋ฉด ๋๊ธฐ ๋๋ฌธ์
๋ฌด์กฐ๊ฑด ํต๊ณผํ ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ค ๐
๐ฉ๐ป๐ป ์ ์ฒด ์ฝ๋
n = int(input().strip())
a = list(map(int, input().split())) # ์ด๊ธฐ ๋ฒฝ๋ ์
q = int(input().strip())
last_time = 0 # ๋ง์ง๋ง ์ ์ฒด ์์น ์๊ฐ
last_color = None # ๋ง์ง๋ง ์ ์ฒด ์์น ์์
last_small_time = [0] * n # ๊ฐ ๋ฒฝ๋๋ณ ๋ง์ง๋ง ๋ถ๋ถ ์์น ์๊ฐ
color = a[:] # ๋ฒฝ๋ ์ ๊ธฐ๋ก
t = 0
for _ in range(q):
parts = input().split()
t += 1 # ์ฟผ๋ฆฌ๋ง๋ค ์๊ฐ 1์ฉ ์ฆ๊ฐ์ํค๊ธฐ
if parts[0] == '1': # ๋ถ๋ถ ์์น
p = int(parts[1]) - 1
x = int(parts[2])
color[p] = x
last_small_time[p] = t
else: # ์ ์ฒด ์์น
x = int(parts[1])
last_time = t
last_color = x
ans = []
for i in range(n):
if last_small_time[i] > last_time: # ๋ถ๋ถ ์์น ์ด ๋ ์ต๊ทผ์ธ ๊ฒฝ์ฐ
ans.append(color[i])
else:
if last_time > 0: # ์ ์ฒด ์์น ์ด ๋ ์ต๊ทผ์ธ ๊ฒฝ์ฐ
ans.append(last_color)
else: # ํ ๋ฒ๋ ์์น ํ์ง ์์ ๊ฒฝ์ฐ
ans.append(a[i])
print(*ans)
๐ ๊ฒฐ๋ก
์ด๋ฒ ๋ฌธ์ ๋ ๋จ์ ๊ตฌํ์ฒ๋ผ ๋ณด์ฌ๋, ์ ์ฒด ๊ฐฑ์ ์ฐ์ฐ์ ๊ทธ๋๋ก ์ํํ๋ฉด ์๊ฐ ์ด๊ณผ๊ฐ ๋๋ค๋ ํจ์ ์ ์จ๊ธฐ๊ณ ์์๋ค.
(์ค์ ๋ก ์ฝํ
๊ฐ ๋๋ ํ ์น๊ตฌ์ ์๊ธฐํด๋ดค์ ๋, ๊ทธ ์น๊ตฌ๋ ์๊ฐ์ด๊ณผ ๋๋ฌธ์ ๊ณ ์ํ๋ค๊ณ ํ๋ค.)
๋ง์ฝ ์ ์ฒด ๊ฐฑ์ ์ฐ์ฐ์ ๊ทธ๋๋ก ์ํํ๊ฒ ๋๋ฉด,
์ ์ฒด ์์น ์ฐ์ฐ์ด ์ฌ๋ฌ๋ฒ ๋์ค๋ ๊ฒฝ์ฐ ์๊ฐ ๋ณต์ก๋๊ฐ O(nq)๋ก ์ปค์ ธ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ด๋ ์๋นํ ๋นํจ์จ์ ์ด๋ค.
๋ฐ๋ผ์ ์ ์ฒด ์์น ์ ์ค์ ๋ก ๊ฐ ์ฟผ๋ฆฌ๋ง๋ค ๋ฒฝ๋ ๋ฐฐ์ด์ ์ ๋ฐ์ดํธํ๋ ๋์ ์ ์๊ฐ๊ณผ ์์๋ง์ ๊ธฐ๋กํ ๊ฒ์ด๊ณ ,
๋ถ๋ถ ์์น ์ ํด๋น ๋ฒฝ๋ ๋ฐฐ์ด์ ์ค์ ๋ก ์ ๋ฐ์ดํธํด์ฃผ๊ณ , ์ถํ ์ ๋ฐ์ดํธ๋ฅผ ์ํด ์๊ฐ์ ๊ธฐ๋กํด์ค ๊ฒ์ด๋ค.
์ด์ ์ด๋ฐ ์ ํ์ ํ๋ ๋ง์ด ๋ด์ ์๊ฐ ๋ณต์ก๋๊ฐ ๊ด๊ฑด์ผ๊ฑฐ๋ผ๊ณ ์๊ฐํ๊ณ ์ ๊ทผํ๊ธฐ๋ ํ์ง๋ง ,,
์์ผ๋ก๋ ๋ชจ๋ ์์๋ฅผ ๊ฐฑ์ ํด์ผ ํ๋ ๊ฒฝ์ฐ, '์ ๋ง ๊ตณ์ด ๋ค ๊ฐฑ์ ํ ํ์๊ฐ ์์๊น?' ๋ผ๋ ์ง๋ฌธ์ ๋์ง ์ ์๋๋ก ๊ณ์ ์์ํ๊ณ ์์ด์ผ ๊ฒ ๋ค.
'๐ป ์ฝํ > ๐ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์ฝํ /Python] ์ธ๊ธ ์ง์ (0) | 2025.09.26 |
|---|---|
| [์ฝํ /Python] ๋ํ ๋ง๋ค๊ธฐ (0) | 2025.09.26 |
| [์ฝํ /Python] ์์ ์ (0) | 2025.09.26 |