Level 2️⃣ - 방문길이
2024. 4. 7. 13:07ㆍ알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/49994
🚀문제 해석
캐릭터가 처음 걸어 본 길의 길이를 구하는 문제이다.
한번 갔던 길은 다시 중복해서 구하면 안된다. 때문에 Set 자료형을 고려할 수 있다.
이때 또 주의할 점이 있다.
A ➡ B로 가는 경로랑 B ➡ A로 반대로 가는 경로도 중복하면 안된다. 새로운 길이 아니기 때문이다.
이 부분을 고려하지 않아 처음 구현할 때 오류가 나왔다.
코드
Set에 A➡B로 가는 것과 B➡A로 가는 것을 문자열로 표현해 저장하는 과정이 인상깊다.
function solution(dirs) {
let start = [0, 0];
let directions = {
"U" : [0, 1],
"D" : [0, -1],
"R" : [1, 0],
"L" : [-1, 0],
};
let path = new Set();
for(const d of dirs){
let next = [start[0] + directions[d][0], start[1] + directions[d][1]];
if(next[0] > 5 || next[0] < -5 || next[1] > 5 || next[1] <-5) continue;
path.add("" + next[0] + next[1] + start[0] + start[1]);
path.add("" + start[0] + start[1] + next[0] + next[1]);
start = next;
}
return path.size / 2;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 2️⃣ - 땅따먹기와 동적 프로그래밍 (1) | 2024.04.07 |
---|---|
Level 2️⃣ - 롤케이크 자르기 (1) | 2024.04.07 |
Level 2️⃣ - 전화번호 목록 (1) | 2024.04.05 |
Level 2️⃣ - 튜플 (0) | 2024.04.03 |
Level 2️⃣ - 기능개발 (0) | 2024.04.03 |