본문 바로가기

전체 글

(91)
데이터 구조 5. 트리(Tree) 마스터하기 1. 트리(Tree)의 구조 2. 이진 트리와 이진 탐색 트리 3. 트리의 구현 - 코딩 클래스 높이기 4. 트리 Class의 전체 구현 코드 1. 트리(Tree)의 구조 (1) 트리: Node와 Branch를 이용해서, 사이클을 이루지 않도록 구성한 데이터 구조를 말합니다. 실제로 이런 트리 데이터 구조는 이진 트리(Binary Tree) 형태로 탐색 알고리즘 구현을 위해 많이 사용됩니다. (2) 트린 관련 용어 총 정리 - 이미지와 함께 보시면 이해가 빨라요!! 1) Node: 트리에서 데이터를 저장하는 기본 요소 2) Root Node: 트리 맨 위에 있는 노드 3) Level: 최상위 노드를 Lvl0으로 했을 때, 하위 Branch로 연결된 노드의 깊이 4) Parent Node: 어떤 노드의 상..
백준 - 1920번 - 수 찾기 오늘 포스팅에서는 백중 중 1920번 문제 수 찾기를 파이썬으로 풀어보는 시간을 갖도록 한다. 기본적인 문제이니 잘 풀어보길 권장한다. 목차 1. 문제의 출처 - 백준 1920번 2. 백준 1920번 Python 해설 3. 정답 인증 1. 문제의 출처 - 백준 1920번 문제의 출처: 백준 실전 문제 풀이 사이트 이번 문제의 핵심은 내가 원하는 정수가 정말 있는지 판단하는 것이다. 이번 문제의 유형은 탐색과 정렬의 문제라고 보는 것이 맞고, 이것을 어떻게 해결했는지 코딩 테스트 해설을 해보고자 한다. 2. 백준 1920번 Python 해설 이번 문제 풀이의 기본적인 것은 input과 map함수이다. 문제 풀이할 때 핵심적인 것은 for과 if문의 기본적인 제어이다. 1 2 3 4 5 6 7 8 9 10 ..
백준 - 10930번 - SHA 256 1. 문제의 출처 - 백준: SHA-256 문제의 출처로 이동하기 - 백준 SHA (1) SHA-256의 기본 개념 특정 string 값을 받았을 때, 이것을 하나의 key와 value 값을 가진 hash구조로 반환해주는 함수로서, 최대 2256 의 경우수를 반환할 수 있습니다. 이 SHA-256에 관련해서 더 관심이 있으신 분은 아래의 링크를 통해 공부하는 것도 추천드립니다. SHA-256이란? 2. 코드 해답 1 2 3 4 5 6 import hashlib input_data = input() encoded_data = input_data.encode() result = hashlib.sha256(encoded_data).hexdigest() print(result) Colored by Color S..
탐색 알고리즘 - 이진 탐색 1. 이진 탐색(Binary Search)의 기본 개념 2. 이진 탐색의 손코드 구현 3. 이진 탐색의 코드 구현 4. 문제 풀이 해답 1. 이진 탐색(Binary Search)의 기본 개념 (1) 이진 탐색의 개념 이진 탐색은 쉽게 말해서 원하는 데이터를 찾을 때 "중간을 기준으로 찾는 것"입니다. 중간에 없으면 다시 왼쪽 오른쪽을 나누어서, 거기서 또 중간 지점을 들여다 보는 방법입니다. 그냥 개념적으로 보면 이게 무슨 뻘짓인가 싶기도 하지만, 탐색 문제에서 시공간 복잡도를 굉장히 절약해줄 수 있는 강력한 Tool될 수도 있습니다. (2) 예시를 통한 코테 대비 - 병뚜껑 찾기 - 출처: www.fun-coding.org 잔재미코딩 온라인 강의 사이트입니다 잔재미코딩에서 만든 온라인 강의 리스트를 공..
프로그래머스 - 정렬 - H-index 1. 문제의 출처 programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 2. 문제의 설명 (1) 문제의 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니..
탐색 알고리즘 - 순차 탐색(Sequential Search) 1. 순차 탐색(Sequential Search) 알고리즘이란? 2. 순차 탐색 구현 1. 순차 탐색(Sequential Search) 알고리즘이란? 탐색 알고리즘에서 가장 쉬운 알고리즘이라고 할 수 있는데요, 개념 자체가 정말 직관적입니다. 순차적으로 모든 인자들을 검색하다가, 원하는 데이터가 있으면 그 값을 반환하는 것입니다. 그래서 논리와 코드 구성도 굉장히 단조로운 편이죠. 2. 순차 탐색의 구현 (1) 손코딩을 통한 논리 구성 첫 번째. 원하는 데이터가 있는 경우 for i in range(데이터의 길이) if 데이터[ i ] == 원하는 데이터 값: return 인덱스, 원하는 값 두 번째. 원하는 데이터가 없는 경우 return "원하는 값이 없습니다." (2) 실제 코드 구현 1 2 3 4..
프로그래머스 - 정렬 - 가장 큰 수 1. 문제의 출처 - 프로그래머스 - 정렬 - K번째 수 programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 2. 문제의 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 ..
고급정렬2. 퀵정렬(Quick Sort) 완벽 마스터하기 1. 퀵정렬(Quick Sort)의 기본 개념 2. 예시를 통한 퀵정렬의 이해 3. 퀵정렬 구현하기 1. 퀵정렬(Quick Sort)의 기본 개념 (1) 퀵정렬의 기본 개념 퀵정렬은 하나의 기준점(pivot)을 정해서, 이보다 작은 것은 왼쪽으로 담고, 큰 것을 오른쪽으로 담는 함수입니다. 이 정렬이 재미있는 이유는 재귀함수를 통해서 구현한다는 점과 향후 학습할 이진트리함수나 다른 내용에서도 이해하는데 도움이 된다는 거에요. 이거는 나중에 다루기로 하겠습니다. 2. 예시를 통한 퀵정렬의 이해 (1) 예시 - [3, 9, 4, 2] 예시 데이터는 [3, 9, 4, 2]로 해보도록 하겠습니다. 기준점은 3으로 잡고, 이제 순차적으로 [9, 4, 2]를 비교해보죠. 첫 번째. 9의 경우 3보다 크기 때문에 오..

728x90
반응형