728x90
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
2. 풀이과정
해당 문제는 이동한 위치와 이동한 길을 따로 저장하고 이동한 길이 겹치지 않는 경우를 계산해 주면 된다.
- 이동한 점들을 저장해 줄 리스트를 생성하고 초기 시작 위치인 0, 0을 추가해 준다. point = [[0, 0]]
- 이동한 길들을 저장해 줄 리스트를 생성한다. way = []
- 명령어를 하나씩 추출하여 for i in dirs
- 만약 추출한 명령어가 'U'이면 if (i == 'U')
- 이동할 다음 위치의 좌표를 구해준다. next = [point[-1][0], point[-1][1] + 1]
- 만약 추출한 명령어가 'D'이면 elif (i == 'D')
- 이동할 다음 위치의 좌표를 구해준다. next = [point[-1][0], point[-1][1] - 1]
- 만약 추출한 명령어가 'R'이면 elif (i == 'R')
- 이동할 다음 위치의 좌표를 구해준다. next = [point[-1][0] + 1, point[-1][1]]
- 만약 추출한 명령어가 'L'이면 else
- 이동할 다음 위치의 좌표를 구해준다. next = [point[-1][0] - 1, point[-1][1]]
- 만약 이동할 다음 위치의 좌표가 주어진 범위 안에 있을 때 if (-5 <= next[0] <= 5) and (-5 <= next[1] <= 5)
- 이동할 길이 처음 가는 길이라면 if ([point[-1], next] not in way) and ([next, point[-1]] not in way)
- 처음 걸어본 길의 길이에 추가해 준다. answer += 1
- 이동한 길을 추가해 주고 way.append([point[-1], next])
- 이동한 위치의 좌표도 추가해 준다. point.append(next)
반응형
3. 소스코드
def solution(dirs):
answer = 0
point = [[0, 0]]
way = []
for i in dirs:
if (i == 'U'):
next = [point[-1][0], point[-1][1] + 1]
elif (i == 'D'):
next = [point[-1][0], point[-1][1] - 1]
elif (i == 'R'):
next = [point[-1][0] + 1, point[-1][1]]
else:
next = [point[-1][0] - 1, point[-1][1]]
if (-5 <= next[0] <= 5) and (-5 <= next[1] <= 5):
if ([point[-1], next] not in way) and ([next, point[-1]] not in way):
answer += 1
way.append([point[-1], next])
point.append(next)
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 숫자 짝꿍 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.01 |
---|---|
[프로그래머스] 옹알이 (2) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.30 |
[프로그래머스] 뒤에 있는 큰 수 찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.28 |
[프로그래머스] 모음사전 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.26 |
[프로그래머스] 게임 맵 최단거리 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.20 |
[프로그래머스] 스킬트리 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.19 |
[프로그래머스] 주식가격 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.18 |
[프로그래머스] 땅따먹기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.17 |