[프로그래머스] 방문 길이 - JS

잡초·2024년 2월 19일
0
post-thumbnail

문제

풀이

function solution(dirs) {
  // 이동 방향에 따른 좌표 변화
  let move = { L: [-1, 0], R: [1, 0], U: [0, 1], D: [0, -1] };
  // 현재 위치를 나타내는 배열을 초기화
  let now = [0, 0];
  // 이동 경로를 저장할 Set을 생성
  let route = new Set();

  for (let dir of dirs) {
    // 현재 위치에서 이동 후의 좌표를 계산
    let nowX = now[0] + move[dir][0];
    let nowY = now[1] + move[dir][1];

    // 이동 후의 좌표가 유효한 범위 내에 있는지 확인
    if (nowX > 5 || nowX < -5 || nowY > 5 || nowY < -5) continue;

    // 이동 경로를 Set에 추가
    route.add("" + now[0] + now[1] + nowX + nowY);
    route.add("" + nowX + nowY + now[0] + now[1]);

    // 현재 위치를 이동 후의 좌표로 업데이트
    now = [nowX, nowY];
  }

  // 겹치는 경로를 제외한 이동 경로의 개수를 반환
  return route.size / 2;
}
profile
개발자가 되고싶은 잡초

0개의 댓글