[ํ๋ก๊ทธ๋๋จธ์ค/python] ํด์(Hash) : ์์ฃผํ์ง ๋ชปํ ์ ์
๋ฌธ์ ์ค๋ช
์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค.
๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด completion์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๋ง๋ผํค ๊ฒฝ๊ธฐ์ ์ฐธ์ฌํ ์ ์์ ์๋ 1๋ช ์ด์ 100,000๋ช ์ดํ์ ๋๋ค.
- completion์ ๊ธธ์ด๋ participant์ ๊ธธ์ด๋ณด๋ค 1 ์์ต๋๋ค.
- ์ฐธ๊ฐ์์ ์ด๋ฆ์ 1๊ฐ ์ด์ 20๊ฐ ์ดํ์ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์ฐธ๊ฐ์ ์ค์๋ ๋๋ช ์ด์ธ์ด ์์ ์ ์์ต๋๋ค.
์ ๋ต
def solution(participant, completion):
answer = "_"
d = {}
for i in participant:
if i in d:
d[i] += 1
else:
d[i] = 1
for c in completion:
d[c] -= 1
for k, v in d.items():
if v != 0:
answer = k
return answer
d = {}
for i in participant:
if i in d:
d[i] += 1
else:
d[i] = 1
์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ d์ ํค๋ก ์ ์ฅํ๊ณ ๊ฐ์๋ 1์ ์ ์ฅํ๋ค.
๊ฐ์ ์ด๋ฆ์ด ์๋ค๋ฉด (if i in d) ๊ฐ์ 1์ ๋ํ๋ค.
์ฆ, ํค๋ ์ ์์ ์ด๋ฆ์ด ๋๊ณ ๊ฐ์ ํด๋น ์ด๋ฆ์ ๊ฐ์ง ์ฌ๋ ์๊ฐ ๋๋ค.
for c in completion:
d[c] -= 1
์์ฃผํ ์ ์์ ์ด๋ฆ์ ํค๋ก ๊ฐ์ง ๊ฐ์ 1์ฉ ๋นผ์ค๋ค.
ํด๋น ์ด๋ฆ์ ๊ฐ์ง ์ ์๊ฐ 1๋ช ์ด๋ผ๋ฉด ๊ฐ์ด 0์ด ๋ ํ ๊ณ n๋ช ์ด๋ผ๋ฉด n-1์ด ๋ ๊ฒ์ด๋ค.
for k, v in d.items():
if v != 0:
answer = k
๊ฐ์ด 0์ด ์๋๋ผ๋ ๊ฒ์ ์์ฃผํ์ง ๋ชปํ ์ฌ๋์ด๋ผ๋ ๋ป์ด๋ฏ๋ก
๊ฐ์ด 0์ด ์๋ ํค๋ฅผ answer์ ์ ์ฅํ ํ returnํ๋ค.
'๐์๊ณ ๋ฆฌ์ฆ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํ์๋ฒ(Greedy) : ์กฐ์ด์คํฑ (0) | 2021.03.29 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํด์(hash) : ์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2021.03.23 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํด์(Hash) : ์์ฅ (0) | 2021.03.23 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํ์๋ฒ(Greedy) : ๊ตฌ๋ช ๋ณดํธ (0) | 2021.03.18 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํ์๋ฒ(Greedy) : ์ฒด์ก๋ณต (0) | 2021.03.17 |