https://school.programmers.co.kr/learn/courses/30/lessons/49994#
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์ ์์ ์ํ๋ ๋ฐ๋ฅผ ์๋ฒฝํ ์ดํดํ๋ ๋ฐ ์๋นํ ์ค๋ ๊ฑธ๋ ธ๋ค.
- ์บ๋ฆญํฐ๊ฐ ์ง๋๊ฒ ๋๋ ์ ๋ถ์ count
- ์ด๋ค ์ ๋ถ์ ์ง๋ ์ ์ด ์์ผ๋ฉด ์ค๋ณต ์นด์ดํธํ์ง ์์
- ์ ๋ถ์๋ ๋ฐฉํฅ์ฑ์ด ์์
๊ฐ x, y ์ขํ๊ฐ 0๋ถํฐ 10๊น์ง์ ๊ฐ์ ๊ฐ์ง๋ 11 * 11 ํฌ๊ธฐ์ ์ด์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค๊ณ ,
์์ ์ (5,5)๋ก ๋๊ณ ์์ํ๋ค.
์บ๋ฆญํฐ๊ฐ ์ง๋๊ฐ ์ ์ ์ ๋ฐฐ์ด์ ์ ์ฅํด๊ฐ๋ฉฐ ์ฒดํฌํด์ ํ์๋ค.
์ธํ์ผ๋ก ์ฃผ์ด์ง dirs ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 500์ดํ๋ก ๊ฝค ์์ ์์ฌ์ ์๊ฐ์ด๊ณผ ๊ฑฑ์ ์ ๋ณ๋ก ์ ํ๊ณ ํ์์ง๋ง,
๋ฐฐ์ด์ด ๊ธธ์ด๊ฐ ๊ธธ์ด์ง๋ค๋ฉด ๊ทธ๋ ๊ฒ ์ข์ ๋ฐฉ๋ฒ์ ์๋ ๋ฏํ๋ค.
python
def solution(dirs):
table = [[0 for i in range(11)] for j in range(11)]
move = {'L':[0,-1], 'R':[0,1], 'U':[-1,0], 'D':[1,0]}
# ์์ : 5,5
x = 5
y = 5
# ์บ๋ฆญํฐ๊ฐ ์ง๋๊ฐ ์ขํ ์์๋๋ก ๊ตฌํ๊ธฐ
visited = [(5,5)]
for dir in dirs:
nx, ny = x + move[dir][0], y + move[dir][1] # ์ด๋์ขํ
if 0 <= nx <= 10 and 0 <= ny <= 10: # ๋ฒ์์ฒดํฌ
visited.append((nx,ny))
x, y = nx, ny
# ์ฒ์ ๊ฑท๋ ๊ธธ count
line = [(visited[i], visited[i+1]) for i in range(len(visited)-1)]
answer = 0
check = []
for a,b in line:
if (a,b) not in check and (b,a) not in check:
answer += 1
check.append((a,b))
return answer
ํ๊ณ ๋์ ์๊ฐํด๋ณด๋
๊ทธ๋ฅ ์ฒ์๋ถํฐ ์บ๋ฆญํฐ๊ฐ ์ง๋๊ฒ ๋๋ ์ ๋ ์ ์ขํ๋ฅผ set์ ์ง์ด๋ฃ๊ณ , set๊ธธ์ด๋ฅผ 2๋ก ๋๋์ด์ฃผ๋ฉด ๋๋ ๊ฑฐ์๋ค.....!
์์ ํ ์ฝ๋
def solution(dirs):
table = [[0 for i in range(11)] for j in range(11)]
move = {'L':[0,-1], 'R':[0,1], 'U':[-1,0], 'D':[1,0]}
# ์์ : 5,5
x = 5
y = 5
visited = set() # ๋ฐฉ๋ฌธํ ์ ๋ถ
prev = (5,5)
for dir in dirs:
nx, ny = x + move[dir][0], y + move[dir][1] # ์ด๋์ขํ
if 0 <= nx <= 10 and 0 <= ny <= 10: # ๋ฒ์์ฒดํฌ
visited.add((prev,(nx,ny)))
visited.add(((nx,ny),prev))
prev = (nx,ny)
x, y = nx, ny
return len(visited)//2
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > ๊ตฌํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]14719๋ฒ: ๋น๋ฌผ (0) | 2023.08.01 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ ์ฆ4๋ธ๋ก (0) | 2023.07.19 |
[ํ๋ก๊ทธ๋๋จธ์ค]2018 ์นด์นด์ค ์์ถ (0) | 2023.06.22 |
[ํ๋ก๊ทธ๋๋จธ์ค]๊ณผ์ ์งํํ๊ธฐ (0) | 2023.06.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ (0) | 2023.06.07 |