자료구조

자료구조/트리

자료구조 - 트리란 무엇인가?

트리란 무엇인가? 트리는 가계도와 같은 계층적인 구조를 표현할 때 사용할 수 있는 자료구조다. 이진 탐색 트리 (Binary Search Tree) 이진 탐색이 동작할 수 있도록 고안된 효율적인 탐색이 가능한 자료구조의 일종 이진 탐색 트리의 특징: 왼쪽 자식 노드 선형 자료구조 왼쪽 오른쪽으로 나누어져 있는 것 => 비선형 자료구조 왼쪽, 오른쪽 두 가지로 나눌 수 있는 것을 이진 트리라고 한다. 대표적인 예시로 데이터의 탐색 속도 증진을 위해 사용하는 구조 전위 순회, 중위 순..

백준 오답노트/집합과 맵

백준 - 집합과 맵 1764번 듣보잡 / ArrayList와 Set,Map의 시간복잡도

= 내가 접근한 방법 = import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws IOException { // 1. input BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer st = new StringTokenizer(br.readLine()); int n = ..

백준 오답노트/집합과 맵

백준 - 집합과 맵 10816번 숫자 카드2 / 이분 탐색을 활용 ( 중복값 )

= 내가 접근한 방법 = 숫자 카드1 문제랑 똑같이 접근했다. Map을 이용해서 Map의 메서드 getOrDefault를 활용하는 방식으로 해결했는데 이 문제도 이분 탐색을 이용해서 풀어야 되는 문제였다. 지난 숫자 카드1보다는 조금 더 간결하게 코드를 짜긴 했지만, 결국 이분 탐색이 핵심이다. getOrDefault라는 메서드는 card라는 맵 안에 내가 입력한 값이 있으면 그 key의 밸류를 갖고오는 것이고 없으면 defaultValue ( 내가 지정한 값 ) 0을 넣는 메서드다. 이 메서드를 활용하면 이분 탐색을 안 하고 쉽게 해결할 수 있다. = 이분 탐색 = https://st-lab.tistory.com/267 이 블로그를 참고해서 공부했다. 나보다 훨씬 자세한 설명은 이 블로그에 있다. 간단..

백준 오답노트/집합과 맵

백준 - 집합과 맵 10815번 숫자 카드 / 이분 탐색을 활용

= 내가 접급한 방법 = Map을 이용해서 접근했다. 1. 상근이가 갖고 있는 카드를 Map으로 이렇게 저장 2. 주어진 카드를 새로운 Map으로 이렇게 저장 (result) ( 순서 유지를 위해 LinkedHashMap을 이용 ) 3. card에 있는 key값을 for문을 이용해서 뿌려줄 때, contains메서드를 이용해서 result에 그 key값이 존재한다면 로 수정을 했다. 그리고 결과를 그대로 출력해주면 됨. = 이분 탐색을 이용한 방법 = 이 문제의 핵심은 이분 탐색 알고리즘을 활용할 수 있냐 없냐 문제였다. 시간 복잡도를 logN으로 할 수 있는 최적의 탐색 방법이다. 정렬된 배열을 탐색하는 것인데, 반을 쪼개고 반을 쪼개고 반을 쪼개서 찾는 방식이다. 1 ~ 10까지의 값이 존재하면 1 ..

초보병일이
'자료구조' 태그의 글 목록