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

블로그 메뉴

  • 홈

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
mini_me

우당탕탕 코드 프로젝트

알고리즘

[ 오늘의 코테 연습장 ] [ 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

    티스토리툴바