본문 바로가기
반응형

공부16

4. 트리 (Tree) 트리란?  노드 간에 부모 - 자식 관계를 가지는 방향성이 있는 그래프. 한 부모 노드가 여러 개의 자식 노드를 가질 수 있기 때문에 비 선형 자료 구조이다. 항상 부모가 없는 가장 상위의 루트(root)노드로 부터 시작해 뻗어나가는 모양이 나무와 닮아 tree라는 이름이 붙었다. 트리의 용어 트리에는 사용의 편리함을 위해 사용하는 개념과 용어들이 있다.  아래 트리의 예시를 기준으로 설명하겠다.   1. 루트 노드 (root) : 부모가 없는 가장 최상위 노드. 위 트리에서는 가장 상단의 1번 노드이다. 2. 부모 노드 (parent) : 한 노드와 연결된 상위 노드. 예를 들어 2번 노드의 부모는 1번 노드이고, 6번 노드의 부모는 3번 노드이다. 3. 자식 노드 (child) : 한 노드와 연결된 .. 2024. 7. 6.
[Python] 백준 1182: 부분수열의 합 solved.ac기준 Silver 2 요즘 들어 슬럼프가 오는 기분. 간단한 문제도 잘 읽히지가 않는 현상이 와 천천히 풀고 있다. 이번 문제도 처음에 접근법을 헷갈려 한참 해메다가 풀었다.  문제N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다.출력첫째 줄에 합이 S가 되는 부분수열의 개수를 출력한다.예제 입력 15 0-7 -3 -2 5 8예제 출력 11정답 코드N, S =.. 2024. 7. 5.
[Python] 백준 1189: 컴백홈 solved.ac 기분 Silver 1 백트래킹 문제는 모든 경우의 수를 살펴보는 럭키브루트포스(?)이기 때문에 분기문을 잘 작성해야 시간초과, 메모리 문제에서 벗어날 수 있다. 그러한 기틀을 다지기 위해 재귀를 구성해 중간에 살펴보지 않아도 되는 케이스는 도려낼 수 있는 로직으로 구성해 풀 수 있는 문제이다.문제한수는 캠프를 마치고 집에 돌아가려 한다. 한수는 현재 왼쪽 아래점에 있고 집은 오른쪽 위에 있다. 그리고 한수는 집에 돌아가는 방법이 다양하다. 단, 한수는 똑똑하여 한번 지나친 곳을 다시 방문하지는 않는다.      cdef  ...f  ..ef  ..gh  cdeh  cdej  ...f       bT..  .T.e  .Td.  .Tfe  bTfg  bTfi  .Tde       a... .. 2024. 7. 1.
[Python] 백준 20055: 컨베이어 벨트 위의 로봇 solved.ac 기준 Gold5 구현 문제의 장점은 문제만 읽어내면 어떻게든 풀 수 있다는 것이고, 단점은 문제만 읽어서 모든 것을 이해해내야한다는 것이다. 문제를 풀다가 자기확신에 빠져들지 않고 최대한 문제 지문에 코드를 일대일 대응 시키게끔 해야 풀기가 수월해지는데, 나는 중간에 자기확신을 가졌기 때문에 로직은 완벽히 짜고서 자그마한 수정만 하면 되는걸 많이 헤맨 문제였다. 문제 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부터 2N까지의 번호가 매겨져 있다. 벨트가 한 칸 회전하면 1번부터 2N-1번까지의 칸은 다음 번호의 칸이 있는 위치로 이동하고.. 2024. 4. 13.
반응형