Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
Tags
- 가상메모리
- 코딩테스트
- 힙
- 재귀
- python
- N과M
- 가상메모리 관리
- 스택
- 다익스트라
- 수학
- BFS
- 백준
- DP
- 딕셔너리
- 운영체제
- level0
- level2
- 프로그래머스
- 브루트포스
- dfs
- 그리디
- 다이나믹 프로그래밍
- 파이썬
- level1
- dict
- MYSQL
- 구현
- level3
- programmers
- BOJ
Archives
- Today
- Total
동캄의 코딩도장
프로그래머스 level2 [방문 길이] 파이썬 본문
https://programmers.co.kr/learn/courses/30/lessons/49994
코딩테스트 연습 - 방문 길이
programmers.co.kr
#프로그래머스 방문 길이
def solution(dirs):
answer = 0
link=[[[[0]*11 for _ in range(11)] for _ in range(11)] for _ in range(11)]
x=5
y=5
for dir in dirs:
if dir=='U' and y<10:
if (link[x][y][x][y+1]!=1) and (link[x][y+1][x][y]!=1):
answer+=1
link[x][y][x][y+1]=1
link[x][y+1][x][y]=1
y+=1
elif dir=='D' and y>0:
if (link[x][y][x][y-1]!=1) and (link[x][y-1][x][y]!=1):
answer+=1
link[x][y][x][y-1]=1
link[x][y-1][x][y]=1
y-=1
elif dir=='L' and x>0:
if (link[x][y][x-1][y]!=1) and (link[x-1][y][x][y]!=1):
answer+=1
link[x][y][x-1][y]=1
link[x-1][y][x][y]=1
x-=1
elif dir=='R' and x<10:
if (link[x][y][x+1][y]!=1) and (link[x+1][y][x][y]!=1):
answer+=1
link[x][y][x+1][y]=1
link[x+1][y][x][y]=1
x+=1
return answer
처음에 어떻게 풀어야할지 막막하였다. 고민하다 생각보다 x,y의 범위가 크지 않다는것을 다시 확인하고,
4차원 배열을 생성하였다. link를 생성해서 각 link의 방문과 미방문을 표시하고, 미방문하였을때는 answer+=1 하는 방식으로 길이를 구하였다.
'코테 > 프로그래머스' 카테고리의 다른 글
프로그래머스 level2 [카펫] 파이썬 (0) | 2021.12.10 |
---|---|
프로그래머스 level2 [문자열 압축] 파이썬 (0) | 2021.12.09 |
프로그래머스 level2 [ [3차] 파일명 정렬] 파이썬 (0) | 2021.12.09 |
프로그래머스 level2 [1차 캐시] 파이썬 (0) | 2021.12.08 |
프로그래머스 level2 [구명보트] 파이썬 (0) | 2021.12.08 |