mini_me
우당탕탕 코드 프로젝트
mini_me
전체 방문자
오늘
어제
  • 분류 전체보기 (30)
    • 알고리즘 (4)
    • 자료구조 (5)
    • 운영체제 ( OS ) (7)
    • JSP (6)
    • 스프링 (5)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • docker
  • Oracle Cloud
  • dockerhub
  • 자동화
  • 연결리스트 # 열혈 자료구조 #자료구조
  • grafana
  • 그래프 알고리즘
  • Greedy Algorithm
  • SQLD
  • #연결리스트 #자료구조 #연결 리스트 #전공 공부
  • Clone Graph
  • graph algorithm
  • smoke test
  • load teet
  • 부하테스트
  • 데이터 모델링
  • 백엔드
  • ci/cd
  • trie
  • K6
  • 자바스크립트
  • influxdb
  • 알고리즘
  • mst
  • 디렉티브 태그
  • leetcode
  • jenkins
  • spanning tree
  • 그리디 알고리즘
  • Database 생성 및 권한

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
mini_me
알고리즘

[ 오늘의 코테 연습장 ] [ LeetCode ] Clone Graph

알고리즘

[ 오늘의 코테 연습장 ] [ LeetCode ] Clone Graph

2023. 9. 26. 17:12

📑 문제
https://leetcode.com/problems/clone-graph/

📑 문제 접근 방법

이문제는 graph문제이기 때문에, DFS 알고리즘을 이용하여 해결했습니다. 

1. 복제한 노드를 저장하기 위해 HashMap을 생성
2. 현재 노드를 복제 , 이웃 노드를 재귀적으로 탐색하며 복제하기 위해 DFS 알고리즘 사용 


📑 CODE 

/*
// Definition for a Node.
class Node {
    public int val;
    public List<Node> neighbors;
    public Node() {
        val = 0;
        neighbors = new ArrayList<Node>();
    }
    public Node(int _val) {
        val = _val;
        neighbors = new ArrayList<Node>();
    }
    public Node(int _val, ArrayList<Node> _neighbors) {
        val = _val;
        neighbors = _neighbors;
    }
    
}

*/
class Solution {
          HashMap<Integer, Node> visited = new HashMap<>();

    public Node cloneGraph(Node node) {
      
        if (node == null) return null;
        if (visited.containsKey(node.val)) return visited.get(node.val);
        
        Node copyNode = new Node();
        copyNode.val = node.val; 
        visited.put(node.val, copyNode);
        
        for (Node neighbor : node.neighbors) {
            copyNode.neighbors.add(cloneGraph(neighbor));
        }
        
        return copyNode;
    }
}
반응형

'알고리즘' 카테고리의 다른 글

[오늘의 코테연습장] - 백준 5052 번  (0) 2022.08.03
[알고리즘] - Graph Algorithms  (0) 2021.05.31
[알고리즘] - Greedy 알고리즘  (0) 2021.05.20
    '알고리즘' 카테고리의 다른 글
    • [오늘의 코테연습장] - 백준 5052 번
    • [알고리즘] - Graph Algorithms
    • [알고리즘] - Greedy 알고리즘
    mini_me
    mini_me

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.