# ์์ฃผํ์ง ๋ชปํ ์ ์(ํด์) # 42576๋ฒ #lv1
# ๋ฌธ์
์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค.
๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด completion์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
# ์ ํ์ฌํญ
- ๋ง๋ผํค ๊ฒฝ๊ธฐ์ ์ฐธ์ฌํ ์ ์์ ์๋ 1๋ช
์ด์ 100,000๋ช
์ดํ์
๋๋ค. (ํจ์จ์ฑ ๊ณ ๋ คํ ๊ฒ!)
- completion์ ๊ธธ์ด participant์ ๊ธธ์ด๋ณด๋ค 1 ์์ต๋๋ค.
- ์ฐธ๊ฐ์์ ์ด๋ฆ์ 1๊ฐ ์ด์ 20๊ฐ ์ดํ์ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์ฐธ๊ฐ์ ์ค์๋ ๋๋ช
์ด์ธ์ด ์์ ์ ์์ต๋๋ค. (์ค๋ณต ์์ ํ์ธ)
#ํ์ด
์ด ๋ฌธ์ ๋ ํน์ดํ๊ฒ๋ ์๊ฐ ์ ํ๊ณผ ํจ์จ์ฑ์ ๊ณ ๋ คํด์ผ ํ๋ ์๋ ๋ฌธ์ ๋ผ ์ฒซ ๋ฒ์งธ ํ์ด๊ฐ ํ ์คํธ์์ ํต๊ณผํ์์๋ ๋ต์์๋ ์ ์ ํ์ง ์์ ํ์ด์๋ค.
# ํ์ด1
# 1๋ฒ ํ์ด
def solution(participant, completion):
participant.sort()
completion.sort()
for i in range(len(completion)):
# participant - completion = 1 non complete
participant.remove(completion[i])
return participant[0]
# ์ค๋ณต ์์ ๊ณ ๋ ค ํ์
# ์ฐจ์งํฉ์ผ๋ก ๊ตฌํ? -> ๊ทธ๋ฅ remove ํจ์๋ก participant ๋ด๋ถ ์์๋ค์ ์ญ์ ํ๋ฉด ์๋๋??
# But, list ๋ด๋ถ๋ฅผ ํ๋์ฉ ๋๋ฆฌ๋ฉด์ ์ฐพ์ผ๋ฉด ์๊ฐ ์ค๋ฒ๋๋ ๋ฌธ์ ๋ฐ์.
"""
1) ์ฐ์ ๋ ๋ฆฌ์คํธ์ ์ํํ ๋น๊ต๋ฅผ ์ํด ๋ชจ๋ sorting์ ํด์ฃผ์๋ค.
2) for ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด completion ๋ด๋ถ์ ์์๋ค์ด participant์ ๋ค์๋์ง ํ์ธํ๊ณ ์ ํ์ผ๋ ๊ตณ์ด..? ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
> ์ด์ฐจํผ sorting ๋์ด์์ผ๋ฏ๋ก ๊ทธ๋ฅ completion[i]๊ฐ participant ๋ด๋ถ์ ๋ค์ด์๋ค๋ฉด remove() ํ๋ ๋ฐฉ์
3) ์ต์ข
์ ์ผ๋ก ๋จ์ participant ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ return ํ๋ค.
"""
# ํ์ด2
# 2๋ฒ ํ์ด
def solution(participant, completion):
participant.sort()
completion.sort()
for i in range(len(completion)):
# participant[i]์ completion[i]๊ฐ ๋ค๋ฅผ ์ ๋ฐ๋ก ํด๋น ์ธ๋ฑ์ค์ participant ์์๋ฅผ return.
if participant[i] != completion[i]:
return participant[i]
# participant์ ๋ง์ง๋ง ์์๋ฅผ return
return participant[-1]
# ์ for ๋ฌธ ๋ด๋ถ์๋ return ๊ตฌ๋ฌธ์ด ์๋?
# sort ๋ ๋ฆฌ์คํธ์์ ๋ค๋ฅธ ๊ฐ์ด ์๋ค๋ ๊ฑด, ๋๋ช
์ด์ธ์ด ์๋ค๋ ๊ฑธ ์๋ฏธ.
# ๋์ผ ์ธ๋ฑ์ค์ ์์๊ฐ ๋ค๋ฅด๋ค๋ ๊ฑด ํด๋น ๋๋ช
์ด์ธ์ด ์์ฃผํ์ง ๋ชปํจ์ ์๋ฏธํจ.
"""
1) sorting ๊ณผ์ ์ ๋์ผ.
2) for ๋ฌธ์ ํตํด completion ๋ด๋ถ ์์๋ค์ ํ๋์ฉ ์ฐพ์๋ด๋ ๊ฒ๋ ๋์ผํ๋, remove๋ฅผ ํ์ง ์๋๋ค๋ ์ ์์ ์ฐจ์ด๊ฐ ์๋ค.
3) ๋ง์ฝ ๋์ผ ์ธ๋ฑ์ค ๊ฐ์ completion, participant ์์๋ค์ด ๊ฐ๋ค๋ฉด pass, ๋ค๋ฅด๋ฉด ๋ฐ๋ก ํด๋น ์ธ๋ฑ์ค์ ์์๋ฅผ return.
> ๋ง์ฝ completion์ ๋ชจ๋ ์ธ๋ฑ์ค์์ participant์ ๊ฐ๋ค๋ฉด for๋ฌธ์ด ์ข
๋ฃ.
4) ์ ์์๋ค์ ๊ฐ์ด ๋ชจ๋ ๊ฐ์ผ๋ฏ๋ก, participant์ ๋ง์ง๋ง ์์์ธ participant[-1]์ return ํ๋ค.
"""
> ํด์ฌ๋ฅผ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํ์ง ์์์ง๋ง, ๋ด๋ถ ๋ ผ๋ฆฌ ๊ตฌ์กฐ๊ฐ ์ ๋ ฌ๋ก๋ ํ ์ ์๋ ๋ฐฉ์์ด์ด์ ์๊ฐ๋ณด๋ค ์์ํ๊ฒ ๋ฌธ์ ๋ฅผ ํ์๋ค. ๊ทธ๋๋ ๋ค์์๋ ํด์๋ก ํ์ด๋ด์ผ์ง..!