Hello Kitty Eyes Shut
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป ์ฝ”ํ…Œ/๐Ÿ“Œ Python

[์ฝ”ํ…Œ/Python] ํŽ˜์ธํŠธ์น 

๋ฐ˜์‘ํ˜•

 

 

 

 

์–ผ๋งˆ์ „์— ์กธ์—… ํ•„์ˆ˜์š”๊ฑด์ธ ์ฝ”ํ…Œ 1์ฐจ ์‹œํ—˜ ๊ฒธ ๊ต๋‚ด ์ฝ”๋”ฉ ๊ฒฝ์ง„๋Œ€ํšŒ์— ์ฐธ์—ฌํ–ˆ์—ˆ๋Š”๋ฐ,

๋” ๋ฏธ๋ฃจ๋ฉด ๋ฌธ์ œ๋ฅผ ๊นŒ๋จน์„ ๊ฒƒ ๊ฐ™์•„์„œ ์šฐ์„  ๊ฐ„๋‹จํžˆ ๊ธฐ๋กํ•ด๋‘๋ ค๊ณ  ํ•œ๋‹ค ,,๐Ÿคง

๋”ฐ๋กœ ๋ฌธ์ œ๋ฅผ ์˜ฌ๋ ค์ฃผ์‹œ์ง€๋Š” ์•Š์•˜๊ณ , ๋‚ด๊ฐ€ ์ œ์ถœํ•œ ํŒŒ์ผ๋งŒ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ผ์žˆ์–ด์„œ

๋ฌธ์ œ ์„ค๋ช…์ด ๋งŽ์ด ๋นˆ์•ฝํ•  ์ˆ˜๋„ ์žˆ๋‹ค ..

 

๐Ÿ“‘ ๋ฌธ์ œ

  • n๊ฐœ์˜ ๋ฒฝ๋Œ์ด ์ฃผ์–ด์ง„๋‹ค.
  • ์ฟผ๋ฆฌ 2๊ฐ€์ง€๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
    1) `1 p x` ํ˜•ํƒœ์˜ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋ฉด ๐Ÿ‘‰๐Ÿป p๋ฒˆ ๋ฒฝ๋Œ์„ x๋ฒˆ ์ƒ‰์œผ๋กœ ๋‹ค์‹œ ์น ํ•œ๋‹ค.
    2) `2 x` ํ˜•ํƒœ์˜ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋ฉด ๐Ÿ‘‰๐Ÿป ๋ชจ๋“  ๋ฒฝ๋Œ์„ x๋ฒˆ ์ƒ‰์œผ๋กœ ๋‹ค์‹œ ์น ํ•œ๋‹ค.
  • ๋ชจ๋“  ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋’ค, ๊ฐ ๋ฒฝ๋Œ์˜ ์ตœ์ข… ์ƒ‰๊น”์„ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

 

์ฆ‰, ์ „์ฒด ์ƒ‰์น ๊ณผ ๋ถ€๋ถ„ ์ƒ‰์น ์ด ์„ž์—ฌ ์žˆ์„ ๋•Œ,

๊ฐ ๋ฒฝ๋Œ์˜ ์ตœ์ข… ์ƒํƒœ๋ฅผ ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ๊ธฐ๋กํ• ์ง€๊ฐ€ ํ•ต์‹ฌ์ด๋‹ค.

 

 


๐Ÿ’ก ์•„์ด๋””์–ด

์ฒ˜์Œ์—๋Š” ๋‹จ์ˆœํžˆ ์ฟผ๋ฆฌ๋งˆ๋‹ค ๋ฒฝ๋Œ ๋ฐฐ์—ด์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ,

์ด๋Ÿฐ ๋ฌธ์ œ์—์„œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋‚œ๊ฒŒ ํ•œ๋‘๋ฒˆ์ด ์•„๋‹ˆ์–ด์„œ .. ใ…Žใ…Ž

์ด๋Ÿฐ ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋‹ ๊ฑฐ๋ผ ์ƒ๊ฐํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•ด๋ณด์•˜๋‹ค.

 

๊ทธ๋ž˜์„œ ๋– ์˜ฌ๋ฆฐ ์ „๋žต์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ์ „์ฒด ์ƒ‰์น ์€ ๋ฒฝ๋Œ ๋ฐฐ์—ด์„ ์—…๋ฐ์ดํŠธ ํ•˜์ง€ ์•Š๊ณ ,
    ๋ณ€์ˆ˜์— ๋งˆ์ง€๋ง‰ ์ „์ฒด ์ƒ‰์น  ์‹œ๊ฐ๊ณผ ๋งˆ์ง€๋ง‰ ์ „์ฒด ์ƒ‰์น  ์ƒ‰์ƒ๋งŒ ๊ธฐ๋กํ•œ๋‹ค.
  2. ๋ถ€๋ถ„ ์ƒ‰์น ์€ ๋ฒฝ๋Œ ๋ฐฐ์—ด์„ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๊ณ ,
    ๋ณ€์ˆ˜์— ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„ ์ƒ‰์น  ์‹œ๊ฐ์„ ๊ธฐ๋กํ•ด์ค€๋‹ค.
    (ํ•ด๋‹น ๋ฒฝ๋Œ์„ ์–ธ์ œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์น ํ–ˆ๋Š”์ง€)
  3. ๋งˆ์ง€๋ง‰์— ๊ฐ ๋ฒฝ๋Œ์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ
    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)๋กœ ์ปค์ ธ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Š” ์ƒ๋‹นํžˆ ๋น„ํšจ์œจ์ ์ด๋‹ค.

 

๋”ฐ๋ผ์„œ ์ „์ฒด ์ƒ‰์น ์€ ์‹ค์ œ๋กœ ๊ฐ ์ฟผ๋ฆฌ๋งˆ๋‹ค ๋ฒฝ๋Œ ๋ฐฐ์—ด์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋Œ€์‹ ์— ์‹œ๊ฐ๊ณผ ์ƒ‰์ƒ๋งŒ์„ ๊ธฐ๋กํ•œ ๊ฒƒ์ด๊ณ ,

๋ถ€๋ถ„ ์ƒ‰์น ์€ ํ•ด๋‹น ๋ฒฝ๋Œ ๋ฐฐ์—ด์„ ์‹ค์ œ๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๊ณ , ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด ์‹œ๊ฐ์„ ๊ธฐ๋กํ•ด์ค€ ๊ฒƒ์ด๋‹ค.

 

์ด์ œ ์ด๋Ÿฐ ์œ ํ˜•์€ ํ•˜๋„ ๋งŽ์ด ๋ด์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๊ด€๊ฑด์ผ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ ‘๊ทผํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ ,,

์•ž์œผ๋กœ๋„ ๋ชจ๋“  ์›์†Œ๋ฅผ ๊ฐฑ์‹ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, '์ •๋ง ๊ตณ์ด ๋‹ค ๊ฐฑ์‹ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ?' ๋ผ๋Š” ์งˆ๋ฌธ์„ ๋˜์งˆ ์ˆ˜ ์žˆ๋„๋ก ๊ณ„์† ์˜์‹ํ•˜๊ณ  ์žˆ์–ด์•ผ ๊ฒ ๋‹ค.

๋ฐ˜์‘ํ˜•