https://school.programmers.co.kr/learn/courses/30/lessons/42862
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr

๋ฌธ์ ์กฐ๊ฑด ์ค, ์ด ๋ง์ง๋ง ์กฐ๊ฑด๋ง ์ฃผ์ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์ฌ๋ฒ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ ๊ฒฝ์ฐ, ๋ค๋ฅธ ํ์์๊ฒ ๋น๋ ค์ค ์ ์๋ค.
--> ํด๋น ํ์๋ค์ ๋จผ์ ์ฒ๋ฆฌํ ๋ค์, ๋ค๋ฅธ ๋๋๋นํ ํ์๋ค์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ ์์ ์ ์งํํด์ผ ์ ๋ต ํ์ ์ ๋ฐ์ ์ ์์๋ค.
python
def solution(n, lost, reserve):
students = [0]*(n+1) # ํ์ ๋ฒํธ๋ 1๋ถํฐ ์์
# ์์ด๋ฒ๋ฆฐ ํ์์ด ์ฌ๋ฒ์ฒด์ก๋ณต ๊ฐ์ง๊ณ ์๋ ๊ฒฝ์ฐ
for i in range(1,n+1):
if i in lost and i in reserve:
lost.remove(i)
reserve.remove(i)
for i in range(1,n+1):
if i not in lost:
students[i] = 1
else:
if i-1 in reserve: # ์ด์ ํ์
reserve.remove(i-1)
students[i] = 1
elif i+1 in reserve: # ๋ค์ ๋ฒํธ ํ์
reserve.remove(i+1)
students[i] = 1
answer = students.count(1)
return answer
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > Greedy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ตฌ๋ช ๋ณดํธ (0) | 2023.07.05 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ง์น ํ๊ธฐ (0) | 2023.05.25 |
[๋ฐฑ์ค]2839๋ฒ: ์คํ ๋ฐฐ๋ฌ (0) | 2023.05.06 |
[์ด์ฝํ ] ๋ง๋ค ์ ์๋ ๊ธ์ก (0) | 2023.03.26 |
[์ด์ฝํ ] ๋ณผ๋ง๊ณต ๊ณ ๋ฅด๊ธฐ (1) | 2023.03.25 |