์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ๋ต ๋น์จ |
1 ์ด | 256 MB | 29.753 % |
๋ฌธ์
ํด๊ฒฐ
key point, TRIE(ํธ๋ผ์ด) ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ค.
- ์ ๋ ฅ๋ฐ์ n๊ฐ์ ์ ํ๋ฒํธ๋ก ์ ํ๋ฒํธ ๋ชฉ๋ก์ ๋ง๋ ๋ค. → insert()
- n๊ฐ์ ์ ํ๋ฒํธ๋ก ๋ชจ๋ ๊ตฌ์ฑํ ์ ํ๋ฒํธ ๋ชฉ๋ก์์ "ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ"๋ฅผ ํ์ํ๋ค. → find()
- ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๋ผ๋ฉด flg ๋ณ์์ ๊ฐ์ true๋ก ๋ณ๊ฒฝ
- ์๋๋ผ๋ฉด, flg๋ ๊ทธ๋๋ก false
- flg๊ฐ์ด true๋ผ๋ฉด ์ผ๊ด์ฑ์ด ์๋ ๋ชฉ๋ก์ด๋ฏ๋ก NO๋ฅผ ์ถ๋ ฅํ๊ณ
- ture๋ผ๋ฉด YES๋ฅผ ์ถ๋ ฅํ๋ค.
ํธ๋ผ์ด
์ ํ๋ฒํธ๋ก ํธ๋ผ์ด๋ฅผ ๊ตฌ์ฑํ ๋๋ ์ด๋ ํ ๋จ์ด๋ ๋ค์ด๊ฐ์ง ์๋ ํ๋์ ๋ฃจํธ(์ต์์ ๋ ธ๋)์ n๊ฐ์ ์ ํ๋ฒํธ๋ฅผ ๋ชจ๋ ์ ์ฅํ๋ค.
๋ฃจํธ๋ 0~9๊น์ง์ child๋ฐฐ์ด์ ๊ฐ๊ณ ์์ผ๋ฉฐ ๊ฐ๊ฐ์ ๋ฐฐ์ด์ TRIE ํฌ์ธํฐ์ด๋ค.
insert ํจ์ ๋ด์์๋, ์ ๋ ฅ๋ ๋ฌธ์์ด( = ์ธ์๋ก ์ ๋ฌ๋ ๋ฌธ์์ด = key)์ ๊ฐ์ง๊ณ ์ฐจ๋ก๋๋ก ์์ ๋ ธ๋๋ก ์ด๋ํด๊ฐ๋ฉด์, ์์ ๋ ธ๋๊ฐ ๋น์ด์์๊ฒฝ์ฐ ๋ง๋ค์ด์ฃผ๊ณ , ์ ๋ ฅ๋ ๋ฌธ์์ด์ ๋์ ๋ง๋ฌ๋ค๋ฉด is_terminal์ true๋ก ๋ฐ๊ฟ ํด๋น ๋ ธ๋๊ฐ ๋ฌธ์์ด์ ๋ง์ง๋ง์ด๋ผ๋ ๊ฒ์ ์ ์ ์๊ฒ ํ๋ค.
find ํจ์ ๋ด์์๋, ์ ํ๋ฒํธ ๋ชฉ๋ก์์ key์ ์ ๋์ด๊ฐ ์๋์ง ์๋์ง ์ฐพ๋ ์ฐ์ฐ์ ํ๋ค. key์ ์ ํ๋ฒํธ๋ฅผ ์ ํ๋ฒํธ ๋ชฉ๋ก์ ๋ฐ๋ผ ๊ฐ๋ฉด์ ํ์์ ํ๋๋ฐ, key๊ฐ ๋ง์ง๋ง ๋ฌธ์๊ฐ ์๋๋ฉด์ ์ ํ๋ฒํธ ๋ชฉ๋ก์์ ๋จผ์ ๋๋๋ ๋ ธ๋๊ฐ ์๋ค๋ฉด ์ ๋์ด๋ฅผ ์ฐพ์ ๊ฒ์ด๋ฏ๋ก true๋ฅผ ๋ฆฌํดํ๊ณ , ์ ๋์ด๋ฅผ ์ฐพ์ง ๋ชปํ๋ค๋ฉด ๋ง์ง๋ง์ ์๊ธฐ์์ ์ด๋ฏ๋ก '\0'๋ฌธ์๊ฐ ๋์ด false๊ฐ ๋ฆฌํด๋๊ฒ ๋๋ค.
์ฝ๋
๋ฉ๋ชจ๋ฆฌ | ์๊ฐ |
8056 KB | 136 ms |
'๐ฅ PS(Problem Solving) ๐ฅ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] #17090 ๋ฏธ๋ก ํ์ถํ๊ธฐ (0) | 2020.07.16 |
---|---|
[BOJ] #5670 ํด๋ํฐ ์ํ (0) | 2020.06.12 |
[BOJ] #12789 ๋ํค๋ํค ๊ฐ์๋๋ฆฌ๋ฏธ (0) | 2020.06.02 |
[BOJ] #1406 ์๋ํฐ (0) | 2020.06.02 |
[BOJ] #2164 ์นด๋2 (0) | 2020.06.02 |
๋๊ธ