반응형
방문 길이 - 프로그래머스
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/49994
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 복기
경로 문제는 예전에 Dynamic programming을 공부할 때, 자주 접한 케이스이다.
경로 문제는 대부분 유사한 형식을 가지고 있는 것 같다.
이번 문제도 동일하다.
- 방향 정보를 담고 있는 move 객체
- dirs을 순회하면서 move[dir]을 구조 분해하여 각각의 좌표를 업데이트해주는 로직
- 경계를 벗어났는지 판단해주는 예외처리
적어도 위의 3가지는 자주 등장하는 코드이니 익숙하지 않다면 익혀주는게 좋을 것 같다.
문제 풀이
1단계
문제 복기에서 말했듯이,
move 객체를 지정해줘야 어느 좌표로 얼만큼 이동했는지 위치는 어디인지 판단할 수 있어서 작성해줘야 한다.
이 곳에서는 중복되는 길인지 판단을 해줘야 하기 때문에 set을 사용하기로 한다.
(중복하면 항상 우선적으로 떠올리면 좋은 것은 set이다.)
방문한 경로를 담을 set을 선언하고, 좌표와 방문 길이도 초기화한다.
2단계
dirs를 순회하면서 구조 분해를 통해서 현재 위치를 계산한다.
경계를 이탈했는지 판단을 한다.
path 와 reversePath를 통해서 방문한 경로를 보관한다.
set(visited)에서 두 값이 없다면 처음 방문하는 경로이기 때문에 set에 추가해주고, totalLength를 증가시킨다.
현재 위치를 업데이트하면서 반복문을 마무리한다.
마지막에 totalLength를 반환하면 끝!
반응형
'알고리즘 PS > Javascript' 카테고리의 다른 글
[JavaScript] n진수 게임 - 프로그래머스 (0) | 2024.12.14 |
---|---|
[JavaScript] 압축 - 프로그래머스 (4) | 2024.12.12 |
[JavaScript] 롤케이크 자르기 - 프로그래머스 (0) | 2024.12.10 |
[JavaScript] 뉴스 클러스터링 - 프로그래머스 (4) | 2024.12.10 |
[JavaScript] 주식가격 - 스택/큐 (4) | 2024.11.24 |