백준 & 프로그래머스
프로그래머스.공원산책.python
concho
2023. 8. 27. 16:27
https://school.programmers.co.kr/learn/courses/30/lessons/172928
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
처음 풀이:
1) park에서 시작지점과 장애물 좌표를 추출
2) routes를 순회하면서 방향과 이동 횟수를 따로 추출
3) 방향과 이동 횟수를 고려해 이동 도중 밖에 벗어나거나 장애물에 걸리는 경우는 무시
4) 정상적인 경우에만 이동
5) 결과 return
- 보안점:
1) 이동점은
def solution(park, routes):
cols = len(park[0])
rows = len(park)
point = []
x_point = []
for i in range(rows):
for j in range(cols):
if park[i][j] == 'S':
point.append(i)
point.append(j)
elif park[i][j] == 'X':
x_point.append([i,j])
for r in routes:
way, num = r.split()[0], int(r.split()[1])
tm_point = [point[0],point[1]]
if way == 'E' and point[1] + num < cols:
for i in range(num):
point[1] += 1
if point in x_point:
point[1] -= i+1
break
elif way == 'W' and point[1] - num >= 0:
for i in range(num):
point[1] -= 1
if point in x_point:
point[1] += i+1
break
elif way == 'S' and point[0] + num < rows:
for i in range(num):
point[0] += 1
if point in x_point:
point[0] -= i+1
break
elif way == 'N' and point[0] - num >= 0:
for i in range(num):
point[0] -= 1
if point in x_point:
point[0] += i+1
break
return point