문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
def solution(dirs):
answer = 0
num = {'U':(0,1),'D':(0,-1),'R':(1,0),'L':(-1,0)}
res={}
visited = set()
x, y = 0, 0
for i in dirs:
nx, ny = x + num[i][0], y + num[i][1]
if -5 <= nx <= 5 and -5 <= ny <= 5:
if ((x, y), (nx, ny)) not in visited:
answer += 1
visited.add(((x, y), (nx, ny)))
visited.add(((nx, ny), (x, y)))
x, y = nx, ny
return answer
풀이
- 중복을 제외하고 방문한 선분을 체크하기
- 입력받는 문자열에 따라 이동하는 좌표값 딕셔너리를 구현.
- 입력에 따라서 x,y를 움직인다. -5 ~ 5의 범위는 넘어가면 continue 해준다,
- set()에 이동좌표를 넣어서 만약 그 좌표가 존재하지 않으면 answer+=1해주고, 존재하면 중복한 값이라고 판단하고 넘어간다.
'알고리즘' 카테고리의 다른 글
[백준] 22233 가희와 키워드 python (1) | 2024.01.22 |
---|---|
[백준] 20006 랭킬전 대기열 python (0) | 2024.01.19 |
[프로그래머스] 호텔 대실 python (0) | 2024.01.17 |
[프로그래머스] 문자열 압축 python (1) | 2023.10.02 |
[프로그래머스] 튜플 Python (0) | 2023.10.02 |