트리란? 계층적인 구조를 나타내는 자료구조로, 순환하는 길이 없는 그래프로 정의한다. 트리는 다양한 종류와 형태가 있지만, 일반적으로 하나의 루트 노드에서 시작하여 각 노드들이 0개 이상의 자식 노드를 가질 수 있는 구조를 갖는다. 트리 용어 용어 설명 루트(Root)...

Tree & Binary Tree

암호만들기 - baekjoon 1759번
1759. 암호 만들기 C개의 문자를 입력받아 L길이의 암호를 만드는 문제이다. 암호는 오름차순으로 정렬되어야한다. Example1 Input 4 6 a t c i s w Output acis acit aciw acst acsw actw aist aisw aitw astw cist ci...

1, 2, 3 더하기 - baekjoon 9095번
9095. 1, 2, 3 더하기 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. example1 I...

Backtracking
백트래킹이란? 백트래킹은 주어진 조건을 만족하는 모든 해를 찾는 알고리즘 기법 중 하나이다. 주로 조합과 순열 문제, 스도쿠, N-퀸 문제 등에서 활용된다. 백트래킹은 완전 탐색의 한 형태로, 가능한 모든 경우의 수를 확인하면서 조건에 맞지 않는 경우 더 이상 진행하지 않고 이전 단계로 돌아가는 방법을 사용한다. 주로 문제풀이에서는 DFS 등으로 모...

BFS
너비 우선 탐색 (Breadth-First Search) 너비 우선 탐색(BFS)은 그래프나 트리 자료 구조를 탐색할 때 사용되는 알고리즘 중 하나로, 시작 노드에서 가까운 노드부터 탐색을 시작하는 방식이다. BFS는 가장 가까운 이웃 노드부터 방문하며, 너비(레벨)를 기준으로 탐색한다. BFS 탐색 과정 위의 과정을 큐가 공백 상태가 될 때 까...

순열 - leetcode 46번
이 문제는 DFS정리한 후 풀려했지만 잘 안풀려서 계속해서 복습하고 작성하는 글이다. 순열 정수 배열이 주어 지면 가능한 모든 순열을 반환한다. 순서는 상관없다. Example 1 Input nums = [1,2,3] Output [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] Exa...

DFS
DFS는 공부했던 자료구조인데도 문제를 푸는데 어려움을 느꼈다.. 오랜만에 해서 그런건지 기억이 가물가물하다… 문제를 봤을 때 DFS와 BFS 어떻게 푸는지 잘 몰랐는데, 기술 매니저님이 문제를 많이 풀어보면 자연스럽게 보인다고하셨다. 두루뭉실하게는 DFS는 찌르는 느낌으로 마지막 까지 깊게 들어가는 반면, BFS는 퍼지는 느낌으로 진행하면 된다고 하...

HashTable
해시 테이블 해시 테이블은 (Key, Value)로 데이터를 배열형태로 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있는 자료구조이다. 각 데이터는 고유한 키(Key)를 가지고 있으며, 해시 함수를 사용하여 해당 키를 배열의 인덱스로 변환한다. 이렇게 변환된 인덱스에 데이터를 저장하거나 검색할 수 있다. 쉽게 설명하면 다음과 같다. 1....

카드2 - baekjoon 2164번
2164. 카드2 N이 주어졌을 때, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮기는 과정을 반복하여 제일 마지막에 남게 되는 카드를 구하는 프로그램을 작성한다. 접근 방법 제일 위에 있는 카드를 버린다. 1.을 시행했으면 제일 위 카드를 아래로 옮긴다. 카드가 1장 남을 ...

스택을 이용한 큐 구현 - leetcode 232번
스택을 이용한 큐 구현 두 개의 스택만 사용하여 FIFO(선입선출) 대기열을 구현한다. 구현된 큐는 일반 큐( push, peek, pop및 empty)의 모든 기능을 지원해야 한다. Example 1: Input [“MyQueue”, “push”, “push”, “peek”, “pop”, “empty”] [[], [1], [2], [...