[programmers] [PCCP 기출문제] 3번 / 충돌위험 찾기
in Algorithm on Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/340211
import java.util.*;
class Solution {
public int solution(int[][] points, int[][] routes) {
int answer = 0;
Map<String,Integer> visited = new HashMap<>();
for(int[] route : routes){
int cnt = 1;
int[] robot = new int[2];
robot[0] = points[route[0]-1][0];
robot[1] = points[route[0]-1][1];
String key = robot[0]+"_"+robot[1]+"_"+cnt;
visited.put( key, visited.getOrDefault(key, 0)+1);
if(visited.get(key) == 2) answer++;
for(int i = 1 ; i < route.length ; i++){
int[] ePoint = points[route[i]-1];
while(true){
cnt++;
if(robot[0] < ePoint[0]) robot[0]++;
else if(robot[0] > ePoint[0]) robot[0]--;
else if(robot[1] < ePoint[1]) robot[1]++;
else if(robot[1] > ePoint[1]) robot[1]--;
String tempKey = robot[0]+"_"+robot[1]+"_"+cnt;
visited.put( tempKey, visited.getOrDefault(tempKey, 0)+1);
if(visited.get(tempKey) == 2) answer++;
if(robot[0] == ePoint[0] && robot[1] == ePoint[1]) break;
}
}
}
return answer;
}
}