[프로그래머스] [파이썬] 공원 산책
[5일차] [코딩테스트] [연습문제] [LV.1] [시뮬레이션]
🎀 본 게시물은 프로그래머스 연습문제 풀이 게시물입니다. 🎀
https://school.programmers.co.kr/learn/courses/30/lessons/172928
다른 사람 풀이에 비해 내 풀이가 가장 간단하고 짧은거 같다.
딕셔너리나 어렵게 생각하지 말고 반복문과 조건문만 사용해도 충분할 거라는 생각이 든다.
코드에 주석 설명을 통해 바로 이해하자.
🚀 나의 풀이 ⭕
def solution(park, routes):
h=len(park)
w=len(park[0])
for i,p in enumerate(park): # 격자판은 무조건 행, 열 완전 탐색을 통해
for j,x in enumerate(p):
if x == 'S': # 시작점을 찾는다.
answer=[i,j]
break
for route in routes: # 로봇 강아지 명령문을 살펴본다.
a,b = route.split() # 방향과 거리를 얻는다.
if a == 'E':
if answer[1]+int(b)<w: # 격자 판을 안넘을 경우만 생각한다. 넘으면 명령을 무시하라고 설명에 써져있다.
if 'X' not in park[answer[0]][answer[1]:answer[1]+int(b)+1]: # 로봇이 갈 거리에 장애물 'X'가 있는지 살펴보고 없으면 명령을 수행한다.
answer[1] += int(b)
elif a == 'W':
if answer[1]-int(b)>=0:
if 'X' not in park[answer[0]][answer[1]-int(b):answer[1]+1]:
answer[1] -= int(b)
elif a == 'N':
if answer[0]-int(b)>=0:
if 'X' not in [ch[answer[1]] for ch in park[answer[0]-int(b):answer[0]+1]]:
answer[0] -= int(b)
else: # 남쪽
if answer[0]+int(b)<h:
if 'X' not in [ch[answer[1]] for ch in park[answer[0]:answer[0]+int(b)+1]]:
answer[0] += int(b)
return answer
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄