๐ ๋ฌธ์
๐ซ ์ ํ ์ฌํญ
โ๏ธ ์ ์ถ๋ ฅ
๐ก ํ์ด
๋ฌธ์ ์กฐ๊ฑด์์ '์ฌ๋ฒ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ด ๋๋๋นํ์ ์ ์๋ค' ๋ผ๊ณ ํ๊ธฐ ๋๋ฌธ์ lost์ reserve์์ ์ค๋ณต๋๋ ๊ฒ๋ค์ ์ ๊ฑฐํด์ผ ํ๋ค.
์ฒ์์๋ ๊ทธ๋ฅ for๋ฌธ์์ ์ค๋ณต ์ฌ๋ถ๋ง ๋ฐ์ ธ remove๋ฅผ ์ฌ์ฉํด ์ ๊ฑฐํ๋ค. ์ ์ถํ๋ 90%๋ง ๋ง๊ณ ์ผ๋ถ ํ ์คํธ์ผ์ด์ค์๋ ์คํจ๊ฐ ๋์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ฐฐ์ด์ ์๋ก ์์ฑํด ์ญ์ ํ์ง ์์ ๋ฒํธ๋ค๋ง ๋ฃ์ด ๋ฐฐ์ด์ ๋ค์ ๊ฐฑ์ ํ๋ ๊ฒ์ด๋ค.
๋๋ new_lost๋ฅผ ์๋ก ์์ฑํด reserve์ ์๋ ๋ฒํธ๋ค์ ์ ๋ฐฐ์ด์ ์ ์ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ์์ ์ ๊ธฐ์ค์ผ๋ก i-1, i+1์ ํ์ธํด ์ฒด์ก๋ณต์ ๋น๋ฆด ์ ์๋ค๋ฉด lost์์ ํด๋น ๋ฒํธ๋ฅผ ์ง์ ๋ค.
def solution(n, lost, reserve):
answer = 0
lost.sort()
reserve.sort()
# ๋ฐฐ์ด์ ์๋ก ์์ฑํด ์ญ์ ํ์ง ์์ ๋ฒํธ๋ค๋ง ๋ฃ์ด ๋ฐฐ์ด์ ๋ค์ ๊ฐฑ์
new_lost = []
for x in lost:
if x in reserve:
reserve.remove(x)
else:
new_lost.append(x)
lost = new_lost
# ์์ ์ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ์น๊ตฌ์๊ฒ ๋น๋ฆด ์ ์๋์ง ํ์ธ
for i in reserve :
if (i-1) in lost :
lost.remove(i-1)
elif (i+1) in lost :
lost.remove(i+1)
answer = n - len(lost)
return answer
728x90