본문 바로가기

알고리즘/문자열

1436. Destination City

본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.

문의는 댓글 바람.

팀 알고리즘 레포지토리 주소

문제 출처

[문제 설명]

나갈 곳이 없는 도시 찾기.

[처음 생각한 접근 방법]

나가는 길이 없는 도시에 도착한 걸 뽑는 문제.

나가는 길이 없다? -> 출발점이 그 도시가 아니다.
주어진 리스트에는 (출발도시->도착도시)가 있는데.
나가는 길이 없는 도시는 도착 도시에는 있지만 출발도시에는 없다.

Set의 출발 도시 다 넣고
도착 도시를 순서대로 넣는다.
도착 도시에 넣었는데 이미 존재하면 false를 뱉는다.

class Solution {
    public String destCity(List<List<String>> paths) {
        String answer = null;                   //나갈 곳이 없는 도시.
        Set<String> set = new HashSet<>();      //도시들을 저장할 set.

        for (List<String> path : paths) {       //출발지가 될 수 있는 도시들 저장.
            set.add(path.get(0));
        }

        for (List<String> path : paths) {       //도착지가 될 수 있는 도시들 저장.
            if (set.add(path.get(1))) {         //출발지에 없는 도시가 되면 if문 실행.
                answer = path.get(1);
                break;
            }
        }

        return answer;
    }
}

리트코드 답안

class Solution {
    public String destCity(List<List<String>> paths) {
        Set<String> set= new HashSet<>();
        for (List<String> l: paths) set.add(l.get(1));
        for (List<String> l: paths) set.remove(l.get(0));
        return set.iterator().next();
    }
}

사실상 비슷한 코드 같다. 다른 건 삭제하는 방식으로 했다는 정도.

728x90
반응형