본문 바로가기
Project/Study | etc

8회 테코테코

by 코젼 2024. 11. 10.
728x90
반응형

 


목차


요약

  • 이진 트리: 왼쪽 노드와 오른쪽 노드가 균일하게 있는 경우
    • 배열, 연결 리스트를 구현할 수 있다. (메모리 제약 차이)
    • * Tri-Tree 구조
    • 계층형 구조
    • 파일 시스템, 인덱스 B-Tree 등에 이용된다.
  • 이진 탐색 트리: 이진 트리 + 정렬
    • 정렬이 잘 되어있으면 탐색이 빠르다.
  • 트리 (사이클X) <-> 그래프 (사이클O) - 순환참조 발생
  • 트리 (비선형 구조) <-> 배열, 리스트 (선형 구조)

 

  • 균형 이진 트리, 포화 이진 트리, 완전 이진 트리
  • 전위 순회: DFS, 트리 복사, 파일 탐색
  • 중위 순회: 오름차순 정렬, 이진 탐색 트리에서 정렬 유지
  • 후위 순회: 메모리 해제, 파일 구조 삭제, 후위 표기법 계산
  • 레벨 순회: BFS, 자식 노드를 큐에 담으면서 확인, 최단 거리 탐색(그래프에서 자주 사용되긴 함)

트리

첫 번째 문제

https://school.programmers.co.kr/learn/courses/30/lessons/12985

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

접근 방법

- a과 b가 만나기까지 a / 2, b / 2 반복문을 진행한다.

- 홀수 인덱스를 처리하기 위해 +1 를 더해서 처리한다.

고민 포인트

- a, b가 만나는 지점이 어디지? (루트 노드)

- 반복문을 어디까지 진행해야 하지? (a != b)

- 홀수 인덱스는 어떻게 처리하지? (+1)

- 다시 배정되는 참가자의 번호를 어떻게 처리하지? (1~N/2)

최종 코드 및 회고

- 처음에는 생각할 부분이 많았는데, 풀이법이 생각난 후 쉽게 풀이할 수 있었다.

class Solution
{
    public int solution(int n, int a, int b)
    {
        int level;
        for (level = 0; a != b; level++) {
            a = (a + 1) / 2;
            b = (b + 1) / 2;
        }
        return level;
    }
}
728x90
반응형

'Project > Study | etc' 카테고리의 다른 글

랜덤 숫자 게임  (0) 2022.08.11
구구단 게임  (0) 2022.08.11
Team Project - 계산기 프로그램  (0) 2022.07.01
상품 구매 프로그램  (0) 2022.06.29
성적 관리 프로그램 + 설계, 메소드 구현  (0) 2022.06.28

댓글