๐ฉโ๐ป๐ [baekjoon] 5052๋ฒ: ์ ํ๋ฒํธ ๋ชฉ๋ก
๐๏ธย solution
import sys
"""
[์๊ฐ]
1) 15:20 ~ 16:00
[์์ฝ]
1) ์ฃผ์ด์ง ์ ํ๋ฒํธ ๋ชฉ๋ก์ ๋ณด๊ณ , ์ผ๊ด์ฑ์ด ์ฌ๋ถ ํ๋จ
- ํ๋์ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด X
- ์ฃผ์ด์ง ๋ชจ๋ ๋ฒํธ์ ๋์ผํ๊ฒ ์ฐ๋ฝํ ์ ์์ด์ผ ์ผ๊ด์ฑ ์๋ค๊ณ ํ๋จ
[์ ๋ต]
1) ์ ํ๋ฒํธ ์์๋ฆฌ๋ฅผ ์ต์ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
- ์๊ฐ ์ ํ & ์
๋ ฅ์ ๊ธธ์ด: ์ด์ค ๋ฃจํ ์ปค๋ฒ ๋ถ๊ฐ๋ฅ
- ์ซ์์ฒ๋ผ ์๊ธด '๋ฌธ์์ด'์ ์ ๋ ฌ, ๊ธธ์ด์ ๊ด๊ณ ์์ด ์๋ฆฌ์์ ์ฑ์์ง ์ซ์๊ฐ ๋น์ทํ ๋ฒํธ๋ผ๋ฆฌ ๋ญ์นจ
=> ๊ทธ๋์ ๊ตณ์ด ์ด์ค ๋ฃจํ๋ฅผ ์ด์ฉํด ์ ์ฒด๋ฅผ ํ์ํ ํ์๊ฐ ์์
=> ์ ์ด์ ๋น์ทํ ๊ฒ๋ผ๋ฆฌ ๋ญ์ณ ์๋ ์ํ๋ผ์, local optimal ~ global optimal ๊ธฐ๋ ๊ฐ๋ฅ
=> ๋ค๋ง, ๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ฒ ์๋๋ผ์, ์ฌ๋ผ์ด์ฑ ๊ธฐ์ค์ ๊ธธ์ด๋ก ์ ํด ์ค์ผ ํ๋ค.
"""
for _ in range(int(sys.stdin.readline())):
checker, result = False, 'YES'
num_list = [sys.stdin.readline().rstrip() for _ in range(int(sys.stdin.readline()))]
num_list.sort()
for i in range(0, len(num_list)-1):
if num_list[i][:min(len(num_list[i]), len(num_list[i+1]))] == num_list[i+1][:min(len(num_list[i]), len(num_list[i+1]))]:
print('NO')
checker = True
break
if not checker:
print(result)
๐กย idea
- 1) ์ ํ๋ฒํธ ์์๋ฆฌ๋ฅผ ์ต์ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
- ์๊ฐ ์ ํ & ์ ๋ ฅ์ ๊ธธ์ด: ์ด์ค ๋ฃจํ ์ปค๋ฒ ๋ถ๊ฐ๋ฅ
- ์ซ์์ฒ๋ผ ์๊ธด โ๋ฌธ์์ดโ์ ์ ๋ ฌ, ๊ธธ์ด์ ๊ด๊ณ ์์ด ์๋ฆฌ์์ ์ฑ์์ง ์ซ์๊ฐ ๋น์ทํ ๋ฒํธ๋ผ๋ฆฌ ๋ญ์นจ
- ๊ทธ๋์ ๊ตณ์ด ์ด์ค ๋ฃจํ๋ฅผ ์ด์ฉํด ์ ์ฒด๋ฅผ ํ์ํ ํ์๊ฐ ์์
- ์ ์ด์ ๋น์ทํ ๊ฒ๋ผ๋ฆฌ ๋ญ์ณ ์๋ ์ํ๋ผ์,
local optimal ~ global optimal
๊ธฐ๋ ๊ฐ๋ฅ - ๋ค๋ง, ๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ฒ ์๋๋ผ์, ์ฌ๋ผ์ด์ฑ ๊ธฐ์ค์ ๊ธธ์ด๋ก ์ ํด ์ค์ผ ํ๋ค.
๋ฌด์ง์ฑ์ผ๋ก ์ฌ์ฉํ๋ ์ ๋ ฌ์ ๋ํด์ ๋ค์ ํ ๋ฒ ์๊ฐํ๊ฒ ๋ ๊ณ๊ธฐ๊ฐ ๋ ๋ฌธ์ ๋ค. ํ์๋ ์ฒ์ ์ด ๋ฌธ์ ๋ฅผ ํ์ดํ ๋, ์ ๋ ฌํ๋ ๋์์ ์ซ์๋ผ๊ณ ์ค์ธํด key=len
์ ์ฌ์ฉํด ์ ๋ ฌ์ ํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฌด์กฐ๊ฑด ์ด์ค ๋ฃจํ๋ฅผ ์ฌ์ฉํด์ผ๋ง ํ๋ค. ๊ทธ๋ฌ๋ฉด ์๊ฐ ์ด๊ณผ์ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
๋ฌธ์ ๋ฅผ ํ๋ฆฌ๊ณ ๋์ ์๊ฐ์ ํด๋ณด๋, ์ ๋ ฌํ๋ ๋์์ ์ค์ ์ซ์๊ฐ ์๋๋ผ โ์ซ์์ฒ๋ผ ์๊ธดโ
๋ฌธ์์ด์ด๋ค. ์ด ์ ์ ์ ์ด์ฉํ๋ฉด, ์์๋ฆฌ์ ์ซ์๊ฐ ๋น์ทํ ๊ฒ๋ผ๋ฆฌ ๋ญ์น๊ฒ ์ ๋ ฌ์ ํด์ค ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ตณ์ด ์ด์ค๋ฃจํ๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์ฌ๋ผ์ง๊ณ , ๋ฐ๋ก ์ ์์์ ๋์กฐ๋ง ํด๋ global optimal
์ ๊ธฐ๋ํด๋ณผ ์ ์๊ฒ ๋๋ค. ํ์ง๋ง ๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ์ ๋ ฌํ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ์ฌ๋ผ์ด์ฑ ๊ธฐ์ค์ min()
์ ์ด์ฉํด ๋ ์งง์ ๋ฌธ์์ด๋ก ์ผ์์ค์ผ ํ๋ค.
Leave a comment