본문 바로가기

Language/Python

(17)
재귀함수 재귀함수는 본인이 본인을 호출하는 함수이다. 재귀함수를 만들 때 반드시 존재해야 하는 조건이 2가지이다. 1. 반드시 끝나는 조건이 존재해야 한다는 것. 2. 계산 범위가 점점 줄어들어야 한다는 것. 가장 많이 예시로 드는 팩토리얼 코드를 보겠다. def factorial_recursive(n): print(n) if n
파이썬 stack과 queue - 파이썬 STACK list 자료형으로 똑같이 사용할 수 있음 stack = [] stack.append(5) // 스택쌓기 [5] stack.append(2) // 스택쌓기 [5, 2] stack.pop() // 스택팝 [5] print(stack) // 결과 // [5] - 파이썬 QUEUE 파이썬으로 큐를 구현할 때는 collections 모듈에서 제공하는 deque 자료구조를 활용하는 것이 좋다. deque는 스택과 큐의 장점 모두 채택한 것인데 데이터를 넣고 빼는 속도 리스트 자료형에 비해 효율적이며 queue 라이 브러리를 이용하는 것보다 더 간단하다. from collections import deque q = deque() q.append(5) // deque[5] q.append(2) ..
3진법 뒤집기 👩‍🏫 문제설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. def solution(n): strResult = '' answer = 0 flag = True mok = n while (flag): etc = (int)(mok % 3) mok = (int)(mok / 3) if n < 3: flag = False strResult = strResult + str(mok) + str(etc) else: if mok < 3: flag = False strResult = strResult + str(etc) + str(mo..
파이썬 heapq 파이썬에서는 힙(heap) 기능을 위해 heapq 라이브러리를 제공한다. 간단하게 heap이란 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. 보통 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조이다. 힙은 최대 힙, 최소 힙이 있으며 파이썬에서는 힙을 보통 배열로 사용하기 때문에 최대 힙은 내림차순, 최소 힙은 오름차순이라고 이해해도 될 것 같다. heapq는 기본적으로 최소 힙만을 지원하기 때문에 최대 힙을 사용하고자 한다면 -부호를 붙여야 한다. import heapq def heapsortASC(iterable): h = [] result = [] for value in iterable: heapq.heappush(h, value) for i ..
파이썬 순열, 조합 (permutations , combinations, product, combination_with_replacement ) 1. permutations : 순열 - 개념 순열이란 순서대로 나열하는 경우의 수, 나열의 목적은 일어날 수 있는 모든 가짓수를 단 하나도 빠짐없이 보여주기 위한것이다. 또한 앞 뒤의 순서가 틀리면 서로 다룬 경우의 수이고 소유보다는 존재의 의미를 갖는다. 예를들어 (사과, 배, 귤) 세 과일 중 두개를 보여주는 경우의 수는 [사과, 배], [사과, 귤], [배, 사과], [배, 귤], [귤, 사과], [귤, 배] 총 6가지 이다. - 파이썬 permutations 사용법 permutations는 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우를 계산해준다. permutations는 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용한다. from ..
파이썬 알고리즘 공부할 때 알아놓으면 좋은 라이브러리 itertools : 파이썬에서 반복되는 형태의 데이터를 처리하는 기능을 제공하는 라이브러리이다. 순열과 조합 라이브러리를 제공한다. heapq : 힙(Heap) 기능을 제공하는 라이브러리이다. 우선순위 큐 기능을 구현하기 위해 사용한다. bisect : 이진탐색 기능을 제공하는 라이브러리이다. collections : 덱, 카운터 등의 유용한 자료구조를 포함하고 있는 라이브러리이다. math : 필수적인 수학적 기능을 제공하는 라이브러리이다. 팩토리얼, 제곱근, 최대공약수, 삼각함수 관련 함수부터 파이와 같은 상수를 포함하고 있다.
파이썬 함수(function) 파이썬에서는 다음과 같이 함수를 정의할 수 있다. def 함수명(매개변수): 실행할 소스코드 return 반환 값 def add(a, b): return a+b print(add(5, 10)) // 결과값 15 위 구조에서 return할 데이터가 없으면 return을 생략할 수 있다. 또한 print(add(b = 10, a = 5)) 처럼 매개변수 이름을 지정하여 순서와 상관없이 매개변수를 전달할 수 있다. 한편, 함수 안에서 함수 밖의 변수 데이터를 변경해야 하는 경우가 있다. 이때는 함수에서 global 키워드를 이용하면 된다. global 키워드로 변수를 지정하면, 해당 함수에서는 지역 변수를 만들지 않고, 함수 바깥에 선언된 변수를 바로 참조할 수 있다. a = 0 def myFunc(): gl..
파이썬 반복문 파이썬에서 사용할 수 있는 반복문은 크게 두 가지이다. 1. while 2. for while문의 같은 경우 다른 언어와 똑같이 사용하면 된다. i = 1 result = 0 while i