ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฐฉ๋ฌธ๊ธธ์ด ํ์ด์ฌ
2021. 8. 29. 21:47ใ๐ฑ Algorithm
๐ป ์ฝ๋
def solution(dirs):
result = [0, 0]
route = {}
dir_dict = {
"U": [0, 1],
"D": [0, -1],
"L": [-1, 0],
"R": [1, 0],
}
for dir in dirs:
if (-5 <= result[0] + dir_dict[dir][0] <= 5) and (-5 <= result[1] + dir_dict[dir][1] <= 5):
new_x = result[0] + dir_dict[dir][0]
new_y = result[1] + dir_dict[dir][1]
route[str(result[0]) + str(result[1]) + str(new_x) + str(new_y)] = 1
route[str(new_x) + str(new_y) + str(result[0]) + str(result[1])] = 1
result[0] = new_x
result[1] = new_y
return len(route) // 2
โ ํ์ด
์ด ๋ฌธ์ ์ ํต์ฌ์
1) ์ด๋ฏธ ์๋ ๊ฒฝ๋ก๋ฅผ ๋ ์นด์ดํ ํ์ง ์๋ ๊ฒ,
2) ํ ๊ฒฝ๋ก์ ๋ํด ์๋ ๋ฐฉํฅ๊ณผ ๊ฐ๋ ๋ฐฉํฅ์ ๋์ผํ๊ฒ ์นด์ดํ ํ ๊ฒ
ํ์ด์ฌ์์ ๋์ผํ ๊ฐ์ ํ๋๋ก ์นด์ดํ ํ๋ ์๋ฃํ์์ ๋์ ๋๋ฆฌ์ set ๊ฐ ๋ํ์ ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ route ๋ผ๋ ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ค์ด ํ๋์ ๊ฒฝ๋ก์ ๋ํด ๋๊ฐ์ง ๋ฐฉํฅ(์ค๋ ๋ฐฉํฅ, ๊ฐ๋ ๋ฐฉํฅ) ์ ์ ์ฅํ๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋์ผํ ๊ฒฝ๋ก๋ฅผ ๋ช๋ฒ์ด๋ ์๋ค ๊ฐ๋คํ๋๋ผ๋ 1ํ๋ก ์นด์ดํ ํ๋ค.
์ฌ์ค์ dictionary ๊ฐ ์๋ set ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ณ์ ์ ๊ทผ์ธ ๊ฒ ๊ฐ๋ค. ๋ฆฌํฉํ ๋ง ํด๋ด์ผ๊ฒ ๋ค.
'๐ฑ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค [lv3] floodfill ํ์ด์ฌ (0) | 2021.09.01 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ์ฟผ๋์์ถ ํ ๊ฐ์ ์ธ๊ธฐ ํ์ด์ฌ (0) | 2021.08.31 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฉ๋ด ๋ฆฌ๋ด์ผ ํ์ด์ฌ (0) | 2021.08.29 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ ํ์ด์ฌ (0) | 2021.08.03 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฐฐ๋ฌ ํ์ด์ฌ (0) | 2021.07.28 |