[LeetCode] Destination City

준규·2022년 12월 5일

path[i] = [cityAi , cityBi] 인 2차원 배열이 주어진다고 한다.

path[i] = [cityAi , cityBi] 는 A도시에서 B도시로 가는 루트를 나타낸다.

이런 상황에서 graph가 loop를 생성하지 않을때 도착지를 리턴하는 문제이다.

Example을 보자

path가 loop를 형성하지 않으므로 도착지인 도시는 다른 도시로 가는 path가 존재하지 않는다.

즉 각 path중 도착지인 도시중 출발지가 아닌 도시가 최종 도착지가 된다.

const destCity = function (paths) {
  let map = {};
  let result = "";

  paths.forEach((city) => {
    map[city[0]] ? (map[city[0]] = map[city[0]] + 1) : (map[city[0]] = 1);
  });

  paths.forEach((city) => {
    if (!map[city[1]]) {
      result = city[1];
    }
  });

  return result;
};

먼저 path 배열을 순회하면서 각 출발지의 갯수를 map 객체에 저장을 해주었다.

이 상태에서 각 path의 도착지들을 순회하면서 map 객체에 key 값으로 존재하지 않는 도시가 최종 도착 도시가 된다.

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글