[프로그래머스] Level2, 방문길이(Python)

2021. 6. 28. 19:29·알고리즘/프로그래머스
728x90
반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/49994

 

코딩테스트 연습 - 방문 길이

 

programmers.co.kr

 

코드

def solution(dirs):
    answer = 0
    dxs, dys = [-1, 0, 1, 0], [0, -1, 0, 1] # x,y 좌표로 안보고 행과열로 봄
    d = {"U": 0, "L":1, "D":2, "R":3}
    visited = set()
    answer = 0
    x, y = 0, 0
    for dir in dirs:
        i = d[dir]
        nx, ny = x + dxs[i], y + dys[i]
        if nx < -5 or nx > 5 or ny < -5 or ny > 5:
            continue
        if (x,y,nx,ny) not in visited:
            visited.add((x, y, nx, ny))
            visited.add((nx, ny, x, y))
            answer += 1
        x, y = nx, ny
    return answer

U, L, D, R 일때 각각 이동시킬 수 있게 리스트를 선언해준다.

 

-5 ~ 5 까지로 범위가 정해져 있으므로 범위를 초과하면 continue 시켜준다.

 

처음 방문한 길의 길이만 구하기 때문에 set으로 중복값을 제거해준다.

근데 (0, 0)에서 (0,1)을 가는 것과 (0,1)에서 (0,0)을 가는 것은 똑같은 길이기 때문에 길은 양방향이라는 것이 중요하다.

 

 

반응형
저작자표시 (새창열림)

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] Level3, 가장 먼 노드 (Python)  (0) 2021.07.26
[프로그래머스] Level3, 네트워크 (Python)  (0) 2021.07.14
[프로그래머스] Level1, 3진법 뒤집기 (Python)  (0) 2021.06.26
[프로그래머스] Level1, 약수의 개수와 덧셈 (Python)  (0) 2021.06.25
[프로그래머스] Level1, 음양 더하기 (Python)  (0) 2021.06.25
'알고리즘/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] Level3, 가장 먼 노드 (Python)
  • [프로그래머스] Level3, 네트워크 (Python)
  • [프로그래머스] Level1, 3진법 뒤집기 (Python)
  • [프로그래머스] Level1, 약수의 개수와 덧셈 (Python)
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196) N
      • study (1) N
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1) N
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    spring
    SpringBoot
    항해99
    파이썬
    카카오인턴
    미니프로젝트
    후기
    김영한
    인프런
    카카오코딩테스트
    orm
    회고
    스파르타코딩클럽
    해결
    알고리즘
    프로그래머스
    조합
    그리디
    백준
    SFlash
    jpa
    브루트포스
    java
    코딩테스트
    괄호
    항해마켓
    정리
    실전프로젝트
    에러
    버그
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[프로그래머스] Level2, 방문길이(Python)
상단으로

티스토리툴바