์ต๊ทผ ๋ฐฑ์ค(https://www.acmicpc.net/)์์ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋๋ฐ, ์ธ์ด๋ฅผ ํ์ด์ฌ์ผ๋ก ์ ํ๋ ๋ฐ๋์ ๋ชจ๋ฅด๋ ๋ถ๋ถ์ด ๋ง์ ๋งค์ฐ ํค๋งค๊ณ ์๋ ์ค์ ๋๋ค..๐ฅฒ ๋ฉฐ์น ์ ๋ฆฌ์คํธ์ ์ค๋ณต ์ ๊ฑฐ ๋ฌธ์ ๋ฅผ ๋ดค๋๋ฐ, ๊ธฐ์กดํ๋ ๋๋ก ๋น์ฐํ for ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด ์์๋ฅผ ์ํํ๋ ค ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ง ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฒ์ ์๊ณ ๊ต์ฅํ ์ ๊ธฐํ์ต๋๋ค.
์งํฉ ์๋ฃํ SET() ์ด์ฉํ๊ธฐ
์งํฉ ์๋ฃํ์ ํน์ง ์ค ํ๋๊ฐ ์ค๋ณต์ด ์๋ค๋ ์ ์ ๋๋ค. ์ด ํน์ง์ ์ด์ฉํ๋ฉด ์ฝ๊ฒ ์ค๋ณต์ด ์๋ set ํ์ ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ ๊ฐ ๋ณธ ๋ฌธ์ ์ฒ๋ผ ์ค๋ณต์ด ์๋ ์์ ๊ฐ์๋ฅผ ์๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ์ len() ํจ์๋ง ์ด์ฉํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ง์ฝ ๊ธฐ์กด ์์๋ฅผ ์ ์งํ ์ฑ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ํ๊ณ ์ถ๋ค๋ฉด ์์๊ฐ ๋ฌด์์๋ก ๋ฐ๋๋ SET์ ์ฌ์ฉํ๋ฉด ์๋ฉ๋๋ค.
๋์ ๋๋ฆฌ(Dictionary) ์ด์ฉํ๊ธฐ
ํ์ด์ฌ์๋ ๋์ ๋๋ฆฌ๋ผ๋ ๋์ ๊ด๊ณ ์๋ฃํ์ด ์์ต๋๋ค. ํํ ๋ค๋ฅธ ์ธ์ด์์๋ ๋ณผ ์ ์๋ Key-Value ํ์์ด๋ฉฐ ํด์(Hash)๋ ์ด๋ฌํ ๋์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๊ณ ์์ต๋๋ค.
์ด ๋์ ๋๋ฆฌ๋ ์์์ ๋ณธ SET()๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Key๊ฐ ์ค๋ณต์ด ์๋ค๋ ์ ์ ๋๋ค. ๋น์ฐํ๊ฒ๋ ์ค๋ณต๋๋ Key๊ฐ์ด ์๋ค๋ฉด, ๊ทธ์ ํด๋นํ๋ Value ์ค ์ด๋ ๊ฒ์ ๊ฐ์ ธ์์ผ ํ ์ง ํผ๋์ด ์๊ธฐ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ์ต๋๋ค. ์ด ํน์ง์ ์ด์ฉํ๋ฉด ๊ธฐ์กด ๋ฆฌ์คํธ์ ์์๋ฅผ ์ ์งํ๋ฉฐ ์ค๋ณต์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
์ฒ์ ์ค๋ณต๋ ์๊ฐ ๋ค์ด์๋ ๋ฆฌ์คํธ arr๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ , type์ด list์์ ํ์ธํด๋ดค์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ dict.fromkeys()๋ฅผ ์ด์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ ๋์ ๋๋ฆฌ๋ก ๋ณํํ๋๋ฐ, ๋ ๋ฒ์งธ ์ธ์๋ก Value๋ฅผ ์ค ์ ์์ง๋ง ์๋ฌด๊ฒ๋ ์ฐ์ง ์์ผ๋ฉด Value๋ None์ด ๋ฉ๋๋ค. ๋์ ๋๋ฆฌ๋ก ๋ณํ๋ arr๋ฅผ ํ์ธํด๋ณด๋ ์ค๋ณต๋ ์๊ฐ ์ฌ๋ผ์ง ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด์ ๋ค์ list()๋ก ๋ฆฌ์คํธ ๋ณํ์ ํด์ฃผ๋ฉด ๊ธฐ์กด ์์๋ ์ ์งํ๋ฉฐ ์ค๋ณต๋ ์๋ง ์ฌ๋ผ์ง๊ฒ ๋ฉ๋๋ค.
for ๋ฐ๋ณต๋ฌธ ์ฌ์ฉํ๊ธฐ
ํ์ด์ฌ์๋ not in ์ด๋ผ๋ ์ข์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ๊ธฐ์กด ๋ฆฌ์คํธ์ธ arr๊ณผ ์๋ก ์ค๋ณต ์๋ ๊ฐ์ ์ ์ฅํ temp๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ , for๋ฌธ๊ณผ if๋ฌธ์ ํตํด temp์ ๊ฐ์ ์ถ๊ฐํด์ค๋๋ค. ์ด ๋ฐฉ๋ฒ์ผ๋ก ํ ๊ฒฝ์ฐ ์๊ฐ ๋ณต์ก๋๊ฐ O(N)์ผ๋ก
if๋ฌธ์์ not in์ ์ฌ์ฉํ๋ฉด ํ์ฌ i ๊ฐ์ด temp์ ์์ ๊ฒฝ์ฐ๋ง append๋ฉ๋๋ค. ์ฐธ๊ณ ๋ก ๊ถ๊ธํด์ ์ฐพ์๋ณธ list์ append์ ์๊ฐ ๋ณต์ก๋๋ O(1)์์ต๋๋ค.
๋ฒ์ธ
์๋ ์ฝ๋๋ ๋งจ ์ฒ์ ์ธ๊ธํ ์ ๊ฐ ํ for๋ฌธ์ ๋๋ค.. ์ผ๋จ ๊ณต๋ถ์์ด ๋ถ๋ชํ๋ณด์!๋ผ๋ ๊ฐ๊ธฐ๋ก ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ ๊ณต๋ถ๋ ์ํ๋๋ not in์ ์กด์ฌ์กฐ์ฐจ ๋ชฐ๋์ต๋๋ค.๐ ์ค์ฒฉ for๋ฌธ์ ์ฌ์ฉํด ์์ ๋ฆฌ์คํธ temp์ ์๋ ์ซ์๋ง append๋ก ์ถ๊ฐํ ์ ์๋๋ก ํ์ต๋๋ค.. ๊ฒฐ๊ณผ๋ ์ด๋ป๊ฒ ์ ๋์์ง๋ง ์์ not in์ ์ฌ์ฉํ for ์ฌ์ฉ๋ฒ๊ณผ ๋ฌ๋ฆฌ, ์ด ๋ฐฉ๋ฒ์ ์๊ฐ ๋ณต์ก๋๊ฐ O(n²)๋ผ์ ์ฌ๋งํ๋ฉด ์งํฉ์ด๋ ๋์ ๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค ํฉ๋๋ค.
'๐ ํ๋ก๊ทธ๋๋ฐ > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python3] ๋ฐฑ์ค 2941 : ํฌ๋ก์ํฐ์ ์ํ๋ฒณ (0) | 2021.09.28 |
---|