728x90
๋ฐ์ํ
"""
์ ์ฌ์๊ฐ์ ๋๋์ด ๋ค์ด, ์ผ๋ถ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ต๋๋ค.
๋คํํ ์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์์ด ์ด๋ค์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ ค ํฉ๋๋ค.
ํ์๋ค์ ๋ฒํธ๋ ์ฒด๊ฒฉ ์์ผ๋ก ๋งค๊ฒจ์ ธ ์์ด, ๋ฐ๋ก ์๋ฒํธ์ ํ์์ด๋
๋ฐ๋ก ๋ท๋ฒํธ์ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, 4๋ฒ ํ์์ 3๋ฒ ํ์์ด๋ 5๋ฒ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
์ฒด์ก๋ณต์ด ์์ผ๋ฉด ์์
์ ๋ค์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒด์ก๋ณต์ ์ ์ ํ ๋น๋ ค
์ต๋ํ ๋ง์ ํ์์ด ์ฒด์ก์์
์ ๋ค์ด์ผ ํฉ๋๋ค.
์ ์ฒด ํ์์ ์ n, ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด lost,
์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด reserve๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋,
์ฒด์ก์์
์ ๋ค์ ์ ์๋ ํ์์ ์ต๋๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
"""
def solution(n, lost, reserve):
student = [1 for _ in range(n)]
for l in lost:
student[l-1] -= 1
for r in reserve:
student[r-1] += 1
student = [1] + student + [1]
for i in range(1, n+1):
if student[i] == 2:
if student[i-1] == 0:
student[i-1] = 1
student[i] = 1
elif student[i+1] == 0:
student[i+1] = 1
student[i] = 1
return n - student.count(0)
"""
์ต๋ํ ์ง๊ด์ ์ผ๋ก ํ์ด๋ณด๋ ค๊ณ ํ๋ค.
๋จผ์ student๋ ์ ๋ถ ์ฒด์ก๋ณต์ด 1๋ฒ์ฉ ์๋ค๊ณ ๊ฐ์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์์ด๋ฒ๋ฆฐ ์ฌ๋๊ณผ ์ฌ๋ถ์ด ์๋ ์ฌ๋์ -1, +1์ ๊ฐ๊ฐ ํด์ฃผ์๋ค.
๊ทธ๋ค์ ๋ก์ง์์ ํ์์ ์๊ณผ ๋ค๋ฅผ ํ์ธํ๋ ๊ฒ์ผ๋ก ์งฐ๊ธฐ ๋๋ฌธ์
์ฒซ๋ฒ์งธ ์ฌ๋ ์์ ์์๋ก 1, ๋ง์ง๋ง ์ฌ๋ ๋ค์ ์์๋ก 1์ ๋ฃ์ด์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ for๋ฌธ์ ๋๋ฉด์ ๊ทธ ํ์์ด ์ฌ๋ถ์ ์ฒด์ก๋ณต์ด ์์๋
์์ฌ๋๊ณผ ๋ท์ฌ๋์ด ์ฒด์ก๋ณต์ด ์์ ๊ฒฝ์ฐ ๋๋ ์ค๋ค.
์์ฌ๋์ ๋จผ์ ํ์ธํ๋ ์ด์ ๋ ๋ท์ฌ๋์ ๊ทธ ๋ค์์ฌ๋์ด ์ค์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ฒดํ์์ n์์ ์ฒด์ก๋ณต์ด ์๋ 0์ ๋นผ์ฃผ๋ฉด ์ต๋ ์ฌ๋์๊ฐ ๋์จ๋ค.
"""
728x90
๋ฐ์ํ
๋๊ธ