728x90
반응형
목차
문제
https://school.programmers.co.kr/learn/courses/30/lessons/340211#
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 구현 시 아이디어 및 가져갈 점
1. 좌표가 중복되는 것은 map을 통해 세주고 길이가 2이상이면 누적한다.
2. 이때 map의 키는 각 시간대를 포함한다. 따라서 모든 좌표를 한 타임마다 이동시켜가면서 누적시킬 필요가 없다.
코드 구현
let m = new Map();
function recordPath(t, r, c){
let str = `${t}-${r}-${c}`;
m.set(str, (m.get(str) || 0) + 1);
}
function solution(points, routes) {
var answer =0;
for(const route of routes){
let t =0;
let [r, c] = points[route[0]-1];
recordPath(t, r, c);
for(let idx =1; idx< route.length; idx++){
let [nr, nc] = points[route[idx]-1];
let rstep = nr > r ? 1: -1;
let cstep = nc > c ? 1: -1;
while(nr !== r){
t++;
r += rstep;
recordPath(t, r, c);
}
while(nc !== c){
t++;
c += cstep;
recordPath(t, r, c);
}
}
}
for(let cnt of m.values()){
if(cnt >1) answer++;
}
return answer;
}반응형
'PS > 프로그래머스' 카테고리의 다른 글
| [프로그래머스][그리디] n+1 카드게임 (4) | 2025.07.10 |
|---|---|
| [프로그래머스][백트래킹][이분탐색][조합] 주사위 고르기 (1) | 2025.07.04 |
| [프로그래머스][bfs] 석유시추 (0) | 2025.07.02 |
| [프로그래머스][이분 탐색] 퍼즐 게임 챌린지 (0) | 2025.07.01 |
| [프로그래머스][조합] 비밀코드해독 (0) | 2025.06.28 |