์์ : ๋ณด๊ธ ๊ฒ์ (๋ฌธ์ ID: BOGGLE, ๋์ด๋: ํ)
๋ฌธ์
5*5 ํฌ๊ธฐ์ ์ํ๋ฒณ ๊ฒฉ์๋ฅผ ๊ฐ์ง๊ณ ํ๋ ๊ฒ์.
๊ฒ์์ ๋ชฉ์ ์ ์ํ์ข์ฐ / ๋๊ฐ์ ์ผ๋ก ์ธ์ ํ ์นธ๋ค์ ๊ธ์๋ค์ ์ด์ด์ ๋จ์ด๋ฅผ ์ฐพ์๋ด๋ ๊ฒ์ ๋๋ค. ๊ฐ ๊ธ์๋ค์ ๋๊ฐ์ ์ผ๋ก๋ ์ด์ด์ง ์ ์์ผ๋ฉฐ, ํ ๊ธ์๊ฐ ๋ ๋ฒ ์ด์ ์ฌ์ฉ๋ ์๋ ์์ต๋๋ค. ์ฃผ์ด์ง ์นธ์์ ์์ํด์ ํน์ ๋จ์ด๋ฅผ ์ฐพ์ ์ ์๋์ง ํ์ธํ๋ ๋ฌธ์ ๋ฅผ ํ์ด ๋ด ์๋ค.
์ ๋ ฅ
1
1
PRETTY
์ถ๋ ฅ
True
ํ์ด
-
๊ฐ๋จํ ๋ฐฉ๋ฒ ์๊ฐ
์์ ํ์
-
๋ฌธ์ ๋ถํ
์ฒซ ๊ธ์ ์ฐพ๊ธฐ => ๋ค์ ๊ธ์๋ฅผ ์ฃผ๋ณ์์ ์ฐพ๊ธฐ
-
๊ธฐ์ ์ฌ๋ก ์ ํ
๋ ์ด์์ ํ์ ์์ด ๊ฐ๋จํ ๋ต์ ๋ผ ์ ์๋ ๊ฒฝ์ฐ
- ์ฒ์ ์ฃผ์ด์ง ์์น๊ฐ ์ํ๋ ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ์๋ ๊ฒฝ์ฐ ์คํจ
- 1์ ํด๋นํ์ง ์๊ณ ์ํ๋ ๋จ์ด๊ฐ 1๊ธ์์ธ ๊ฒฝ์ฐ ์ฑ๊ณต
๋์ ์์๋ ๋ฐ๋๋ฉด ์๋จ
tip : ์ ๋ ฅ์ด ์๋ชป๋๊ฑฐ๋ ๋ฒ์์์ ๋ฒ์ด๋๋ ๊ฒฝ์ฐ, ๊ฒ์ํ์ ๋ฒ์ด๋ ๊ฒฝ์ฐ, ์ฒซ ๊ธ์๊ฐ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ๋ ๊ธฐ์ ์ฌ๋ก๋ก ํํด์ ์ฒ์์ ์ฒ๋ฆฌํ๊ธฐ
4.1. ๊ตฌํ
import sys
# map, direction save
game_map = [['U','R','L','P','M'],['X','P','R','E','T'],['G','I','A','E','T'],['X','T','N','Z','Y'],['X','O','Q','R','S']]
side = [[1,0],[1,1],[0,1],[-1,1],[-1,0],[-1,-1],[0,-1],[1,-1]]
# get input
try:
pos_y = int(input())
pos_x = int(input())
target_word = input()
except:
sys.exit()
def hasWord(y,x,word):
if y<0 or y>4 or x<0 or x>4 : # in map?
return False
boolean = (word[0]==game_map[y][x])
word = word[1:] # delete first alphabet
if boolean:
if not(len(word)): # word is empty
return True
else:
for case in side: # dynamic programming
if hasWord(y+case[0],x+case[1],word):
return True
else:
return False
print(hasWord(pos_y,pos_x,target_word))
๋ถ์
์ด์ ๊น์ง๋ ๊ธฐ์ ์ฌ๋ก๋ผ๋ ๊ฐ๋ ์ด ์์ด์ ๋์ ํ๋ก๊ทธ๋๋ฐ์ด๋ ์ฌ๊ท๋ฅผ ๊ตฌํํ ๋๋ ์์ธ ์ฌํญ์ด ์๊ธฐ๋ฉด ํ๋์ฉ ์ถ๊ฐํด๊ฐ๋ฉฐ ๊ตฌํํ์๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ๊ธฐ์ ์ฌ๋ก๋ฅผ ์ ์ํด๋๊ณ ์์ํ๋ ๋ ์ค๋ฅ๊ฐ ์ ๊ณ ๋น ๋ฅธ ๊ตฌํ์ด ๊ฐ๋ฅํ ๊ฑฐ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ ฅ์ ๋ฐ์ ๋๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด๋๋ฉด ํธํ๋ค. python์ ํนํ ์์ธ์ฒ๋ฆฌ๊ฐ ์ฌ์์ ํด์ฃผ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค :>
ํด๋น ์ฝ๋์ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐํํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
-
์๊ฐ ๋ณต์ก๋
์ต์ ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ์ฐํ๋ฉด O(8^(N)) (N: ๋จ์ด์ ๊ธธ์ด)
ex_ A๋ก ๊ฐ๋์ฐฌ map์์ AAAAAAH ์ฐพ๊ธฐ
์ง์ ์๊ฐ ์๊ณ ๋ฆฌ์ฆ์
๊ณ ์ฐฐ
์ฑ ์ ์์ ์ฝ๋์์๋ if๋ฌธ์ ์ฐจ๋ก๋ก ๋์ด์ return๋ฌธ ๋์ else๋ฅผ ๋ฐ๋ก ๊ตฌํํ์ง ์๊ณ ๋ ๋ ผ๋ฆฌ์ ์๋์ ์ผ๋ก else์ ์๋ฏธ๊ฐ ๋๋๋ก ํ๋ค.
์ฆ, if(์กฐ๊ฑด): return ~
๋ฌธ์ฅ ์ดํ์ ๋ฌธ์ฅ๋ค์ ๋ชจ๋ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ๋ชปํ ๊ฒ๋ค ๋ฟ์ด๋ค.
ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ด ์๊ฐ์ ์ผ๋ก ์ด๋์ด ๋๋์ง๋ ์๋ฌธ์ด๋ค.
Comment