[프로그래머스] 코딩테스트 연습 - 56

krkorklo·2022년 2월 15일
0

프로그래머스

목록 보기
56/78

level 2 - 방문 길이

명령어가 매개변수 dirs로 주어질 때, 게임 캐릭터가 처음 걸어본 길의 길이를 구하여 return 하는 solution 함수를 완성해 주세요.

입출력 예시
dirs : "ULURRDLLU"
-> 7

function solution(dirs) {
    var answer = 0;
    var cur = {x: 0, y: 0};
    var line = {x: 0, y: 0};
    var stack =[];
    dirs.split("").forEach((dir) => {
        if (cur.x != -5 && dir == "L") {
            line.x = cur.x - 0.5;
            line.y = cur.y;
            cur.x--;
        } else if (cur.x != 5 && dir == "R") {
            line.x = cur.x + 0.5;
            line.y = cur.y;
            cur.x++;
        } else if (cur.y != -5 && dir == "D") {
            line.y = cur.y - 0.5;
            line.x = cur.x;
            cur.y--;
        } else if (cur.y != 5 && dir == "U") {
            line.y = cur.y + 0.5;
            line.x = cur.x;
            cur.y++;
        }
        stack.push([line.x, line.y])
    })
    answer = [...new Set(stack.join('/').split('/'))].map((s) => s.split(','))
    return answer.length;
}

set으로는 2차원 배열 중복 제거가 안돼서 한참을 고민했다...
허헣...

0개의 댓글