728x90 그냥 공부49 [코딩인터뷰완전분석] 트리와 그래프 3 이진 트리가 균형인지 아닌지 확인하여라. 모든 노드에 대해서 왼쪽 서브 트리와 오른쪽 서브 트리의 높이의 차이가 최대 1이어야 균형 이다. 내가 짠 코드 public static int depth(myNode node) { if (node == null) { return 0; } int l = depth(node.left) + 1; int r = depth(node.right) + 1; if (l == -1 || r == -1) { return -1; } if (l - r == 0 || l - r == 1 || l - r == -1) { return Math.max(l, r); } else { return -1; } } public static boolean isBalanced(myNode node) {.. 2022. 6. 10. [코딩인터뷰완전분석] 트리와 그래프 2 방향 그래프가 주어졌을 때, 두 노드 사이에 경로가 존재하는가 내가 짠 코드 package tree; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; public class pathExists { public static void main(String[] args) { // 방향 그래프 ArrayList graph = new ArrayList(); for(int i = 0 ; i < 7; i++) { graph.add(new ArrayList()); } graph.get(1).add(0); graph.get(1).add(5); graph.get(2).add(3); graph.get(2).add(4); grap.. 2022. 6. 9. [코딩인터뷰완전분석] 트리와 그래프 1 트리와 그래프 트리 하나의 root를 갖다.root는 0개 이상의 자식 노드를 갖는다. 그 자식 노드 또한 0개 이상의 자식 노드를 갖고 있고 이가 반복적으로 정의된다. 트리에는 사이클이 존재할 수 없다. 이진 트리 각 노드가 최대 두 개의 자식을 갖는 트리 이진 탐색 트리 모든 노드가 "모든 왼쪽 자식들 2022. 6. 8. [코딩인터뷰완전분석] 스택과 큐 스택과 큐 스택 데이터를 쌓아 올리는 자료구조 LIFO(Last In First Out) 맨 마지막에서 원소를 꺼내거나 추가하는 연산을 상수 시간에 할 수 있다. i번째 원소에 상수 시간에 접근할 수 없다. 큐 FIFO(First In First Out) 선착순과 같은 느낌 맨 처음 원소를 꺼내거나 맨 마지막에 원소를 추가한다. 노드 package stackNqueue; public class myNode { int value; int min; myNode next; String type; public myNode(int v) { this.value = v; this.type = null; this.next = null; } public myNode(int v, int m) { this.value = v.. 2022. 6. 8. [코딩인터뷰완전분석] 연결리스트 02 연결리스트 차례로 연결된 노드를 표현해주는 자료구조 단방향 연결리스트에서 각 노드는 다음 노드를 가리킨다. 양방향 연결리스트에서 각 노드는 다음 노드와 이전 노드를 가리킨다. 배열과 달리 연결리스트에서는 특정 인덱스에 상수 시간에 접근할 수 없다. -> k번째 원소를 찾고 싶다면 k번 루프를 돌아야 한다. 시작 지점에서 아이템을 추가하거나, 삭제하는 연산을 상수 시간에 할 수 있다. 단방향 연결리스트 구현 public class myLinkedList { private Node head = null; private Node tail = null; private int size; public myLinkedList(int v) { this.head = new Node(v); this.size = 1;.. 2022. 6. 3. [코딩인터뷰완전분석] 배열과 문자열 01 배열과 문자열 배열이나 문자열에 대한 문제는 서로 바꿔질 수 있다. 중복이 없는가 문자열 s에 중복되는 문자가 있다면 false, 그렇지 않다면 true. 내가 짠 코드 // 중복이 없는가? public static boolean isRepeated(String str) { int len = str.length(); for (int i = 0; i < len; i++) { char ch = str.charAt(i); String temp = str.substring(i + 1); int result = temp.indexOf(ch); if (result != -1) { return false; } } return true; } public static boolean isRepeatedWith(Str.. 2022. 6. 1. 이전 1 2 3 4 ··· 9 다음 728x90