다음 예시와 같이 정수를 나눈 몫과 나머지를 동시에 구해야 할 때가 생긴다. 예) 7을 3으로 나눈 몫과 나머지를 구하시오. 보통의 경우 아래와 같이 몫과 나머지를 따로 구한다. a = 7 b = 5 print(a//b, a%b) divmod 파이썬에서는 몫과 나머지를 동시에 반환해주는 divmod 함수를 지원한다. a = 7 b = 5 print(divmod(a, b))# (1, 2) # unpacking 연산자(*)를 이용하는 경우 print(*divmod(a, b))# 1 2 주의 사항 무조건 divmod 함수를 사용하는 것이 좋은 방법은 아니다. 가독성이나, 팀의 코드 스타일에 따라서, a//b, a%b와 같이 쓸 때가 더 좋을 수 있다는 것을 알아두자. 또한, divmod 함수는 작은 숫자를 다..
combinations 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 순서를 고려하지 않고 나열하는 모든 경우를 계산해준다. → 조합 combinations는 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용한다. 예) 리스트 ['A', 'B', 'C']에서 2개(r = 2)를 뽑아 순서에 상관없이 나열하는 모든 경우를 출력하시오. from itertools import combinations data = ['A', 'B', 'C'] result = list(combinations(data, 2)) print(result) # [('A', 'B'), ('A', 'C'), ('B', 'C')] 프로그래머스>Summer/Winter Coding(~2018)>소수 만들기 코딩테스..
zip 함수의 경우 두개 이상의 그룹의 데이터를 서로 엮어주는 파이썬의 내장 함수이다. zip 함수는 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환한다. 프로그래머스>월간코드챌린지시즌1>내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. def solution(a, b): return sum([x*y for x, y in zip(a,b)]) 두 정수 배열 a, b를 zip 함수를 이용하여 (a[0], b[0])과 같이 튜플의 형태로 사용할 수 있다. 따라서 해당 튜플에 for문을 이용하여 x, y..
코딩 테스트>> 데이터의 개수가 1,000만개를 넘어가거나 탐색 범위의 크기가 1,000억 이상일 경우 등 입력 데이터가 많은 문제에 input() 함수를 사용하면 동작 속도가 느려서 시간 초과로 오답 판정을 받을 수 있다. 이처럼 입력 데이터가 많은 문제는 sys 라이브러리의 readline() 함수를 이용하면 시간 초과를 피할 수 있다. readline() import sys # 하나의 문자열 데이터 입력받기 input_data = sys.stdin.readline().rstrip() # 입력받은 문자열 그대로 출력 print(input_data) rstrip() : 입력의 맨 마지막 공백 문자를 제거해준다. Ref. 이것이 취업을 위한 코딩 테스트다 with 파이썬
heapq 힙(Heap) 기능을 제공하기 위한 라이브러리이다. 파이썬의 힙은 최소 힙(Min Heap)으로 구성되어 있으므로 단순히 원소를 힙에 전부 넣었다가 뺴는 것만으로도 시간 복잡도 O(NlogN)에 오름차순 정렬이 완료된다. (보통 최소 힙 자료구조의 최상단 원소 : 가장 작은 원소) heapq.heappush( ) : 힙에서 원소를 삽입할 때 heapq.heappop( ) : 힙에서 원소를 꺼낼 때 항상 가장 작은 원소를 꺼내게 된다. 예) 힙 정렬(Heap Sort)을 heapq로 구현하는 경우 import heapq def heapsort(iterable): h = [] result = [] # 모든 원소를 차례대로 힙에 삽입 for value in iterable: heapq.heappus..
📁 파이썬의 정렬 라이브러리 ✔️ 병합 정렬(merge sort)을 기반으로 만들어졌으며, 퀵 정렬보다는 느리지만 최악의 경우에도 시간 복잡도 O(NlogN)을 보장한다는 특징을 가진다. 📁 sort() 와 sorted() ✔️ iterable 객체를 정렬해주는 파이썬의 내장함수(built-in function) ✔️ reverse 속성 : False - 오름차순 / True - 내림차순 ✔️ 오름 차순 : 숫자의 크기가 커진다. ex. 1, 2, 3, 4 array = [9, 1, 8, 5, 4] array.sort() array Out[4]: [1, 4, 5, 8, 9] array = [9, 1, 8, 5, 4] sorted(array) Out[6]: [1, 4, 5, 8, 9] # 리스트에 반영되어..
1. 내장 함수 내장 함수는 프로그램 작성에 있어 가장 기본적이면서도 필수적인 기능을 포함하고 있으며, 별도의 import 명령어 없이 바로 사용할 수 있다. input(), print(), sum(), min(), max(), eval(), sorted() sum() : 리스트와 같은 iterable 객체가 입력으로 주어졌을 때, 모든 원소의 합을 반환한다. - iterable 객체 : 반복 가능한 객체 (리스트, 사전, 튜플 등) result = sum([1, 2, 3, 4, 5]) print(result) # 15 min() : 파라미터가 2개 이상 들어왔을 때 가장 작은 값을 반환한다. result = min(7, 3, 5, 2) print(result) # 2 max() : 파라미터가 2개 이상..