본문 바로가기

python7

[자료구조] Binary Tree(이진 트리) - CS면접 대비 이번 글에서는 컴퓨터 프로그래밍에서 자주 사용되는 자료구조 중 하나인 이진 트리에 관한 내용을 정리해보고자 한다. 1. 이진 트리의 정의 및 성질 먼저, 이진 트리(binary tree)는 공백이거나 루트(root)와 왼쪽 서브 트리, 오른쪽 서브 트리라고 하는 2개의 분리된 이진 트리로 구성된 노드의 유한 집합이다. 이진 트리와 일반적인 트리의 주요한 차이점은 다음과 같다. 일반 트리의 경우 0개의 노드를 가질 수 없으나, 공백 이진 트리는 존재함 일반 트리는 자식의 순서를 구분하지 않으나, 이진 트리는 왼쪽 자식과 오른쪽 자식을 구별함 또한, 이진 트리는 노드의 수와 관련하여 다음과 같은 성질을 갖는다. 레벨 i 에서의 최대 노드 수는 2^(i -1) → 예) 레벨 3에서 최대 노드의 수는 4개 깊이.. 2021. 11. 16.
[Python] - rjsut(), ljust(), zfill() 을 이용해 문자열 정렬하기 파이썬에서 문자열 정렬하기(좌, 우 공백 채우기) 최근 문자열 관련 알고리즘 문제를 풀던 중 자릿수에 맞춰 문자열을 정렬해야 하는 상황이 발생했다. 문제를 해결하기 위해서 2차원 행렬의 각 행을 문자열로 만들어야 했는데, 여기서 2차원 행렬의 크기가 정해져 있다 보니 빈 공간은 모두 0으로 채워야 했던 것이다. 예를 들어, 10진수 9의 2진수 표현은 '1001' 인데 크기가 5x5인 행렬에서 이를 배열에 저장할 때는 '01001'으로 저장해야 했던 것이다. 문제를 풀 당시에는 공백문자열(" ")을 행렬의 크기에 맞춰 배열에 넣어준 뒤에, 이를 오른쪽 끝자리부터 2진수의 각 자리수로 채워주는 방식으로 해결했으나, 나중에 정답자들의 코드를 보니 rjust()라는 유용한 메소드로 이를 쉽게 해결할 수 있었다.. 2021. 1. 12.
[Python3] - RecursionError: maximum recursion depth exceeded in comparison 상황 OS : MacOS Catalina (v 10.15.4) Python version : v 3.5.1 백준알고리즘 사이트에서 다이나믹 프로그래밍 문제를 풀던 도중 아래와 같이 RecursionError 가 발생했다. Recursion Error 해결 Python은 1000회 이상 재귀호출을 하면 에러가 발생하도록 설정이 되어있다. 따라서, 아래의 코드를 추가하여 가능한 재귀호출 횟수를 늘려주면 원하는 결과값을 얻을 수 있다. # setrecursionlimit parameter 값을 원하는대로 수정할 수 있다. import sys sys.setrecursionlimit(10**5) 2021. 1. 10.
[Python] - 지능형리스트(List Comprehension)로 리스트 만들기 지능형리스트(List Comprehension)란? 생경한 이름과는 달리 지능형리스트는 단지 리스트를 만들 뿐이다. 튜플과 같은 다른 종류의 시퀀스를 만들려면 제너레이터 표현식을 사용해야 한다. 지능형리스트(List Comprehension)를 이용하여 리스트 생성하기 List Comprehension을 이용하는 방법은 정말 간단하다. 아래와 같은 코드를 작성하여 간단하게 리스트를 생성할 수 있다. # 지능형리스트를 사용해 리스트를 만드는 경우 characters = 'abcdefghijk' clist = [char for char in characters] clist Python에서 위의 코드를 실행했을 때의 결과는 아래와 같다. >>> ['a', 'b', 'c', 'd', 'e', 'f', 'g', .. 2020. 11. 15.
[Python] - map() 함수 파이썬에서 유용하게 쓰이는 map() 함수의 사용법을 알아보자. map() 함수란? map(function, iterable, ... ) map 함수는 모든 iterable 요소에 function을 적용하여 iterator를 리턴한다. 다시 말해, map 함수는 반복가능한 iterable 객체의 각 요소에 특정 함수를 적용해주는 함수이다. ↓↓ 영문설명 ↓↓ https://docs.python.org/3/library/functions.html#map Built-in Functions — Python 3.9.0 documentation Built-in Functions The Python interpreter has a number of functions and types built into it tha.. 2020. 11. 6.
[Pandas] - DataFrame에서 데이터 Select 하기(loc[], iloc[]) Pandas의 2차원 데이터 객체인 DataFrame에서 원하는 데이터를 Select 하는 법을 알아보자. 데이터프레임 생성하기먼저 상품별 가격, 판매량, 재고 정보가 담긴 DataFrame을 만든다.import numpy as npimport pandas as pddata = {'가격':[1000,2100,3000,700], '판매량':[20,40,35,60], '재고':[100,50,200,70]}df = pd.DataFrame(data, index=['컵라면','커피','도시락','사탕']) 원하는 Column 그룹 데이터 조회하기df["column명"] 을 통해 원하는 Column(열) 정보를 조회할 수 있다. 예를들어, '가격' column 정보를 얻고자 하는 경우 아래와 .. 2020. 10. 26.
반응형