공부 18

파이썬 기타 알고리즘 - 순열과 조합

### 알아두면 유용한 함수 ### ############# # > 순열과 조합 # permutation : 순열 - 서로다른 N 개에서 r개를 선택하여 일렬로 나열하는 것 # permutations()는 리스트 형태가 아니기 때문에 list()함수로 변환한다. import itertools data = [1, 2] for x in itertools.permutations(data, 2): print(list(x)) # combination : 조합 - 서로다른 N 개에서 순서에 상관없이 서로 다른 r개를 선택하는 것 # 마찬가지로 list()로 변환하여 사용 data = [1, 2, 3] for x in itertools.combinations(data, 2): print(list(x), end=' '..

공부/파이썬 2022.12.09

파이썬 기타 알고리즘 - 구간 합 계산

### 알아두면 유용한 함수 ### ############# # > 구간 합 계산 # 연속적으로 나열된 N 개의 수가 있을 때, 특정 구간의 모든 수를 합한 값을 구한다. # 1. N개의 수에 대하여 접두사 합(Prefix Sum)을 계산하여 배열 P에 저장한다. # 2. 매 M갸의 쿼리 정보[L, R]을 확인할 때 구간 합은 P[R] - P[L - 1]이다. # 접두사 합을 활용한 구간 합 계산 # 데이터의 개수 N과 전체 데이터 선언 n = 5 data = [10, 20, 30, 40, 50] # 접두사 합(Prefix Sum) 배열 계산 sum_value = 0 prefix_sum = [0] for i in data: sum_value += i prefix_sum.append(sum_value) #..

공부/파이썬 2022.12.09

파이썬 기타 알고리즘 - 투 포인터

### 알아두면 유용한 함수 ### ############# # > 투 포인터 # 리스트에 순차적으로 접근해야 할 때 2개의 점의 위치를 기록하면서 처리하는 기법 # 특정 합을 가지는 부분 연속 수열 찾기 # 1. start 와 end가 첫번째 원소의 인덱스(0)를 가리키도록 한다. # 2. 현재 부분합이 M과 같다면 카운트한다. # 3. 현재 부분이 M보다 작으면 end를 1 증가시킨다. # 4. 현재 부분이 M보다 크거나 같으면 start를 1 증가시킨다. # 5. 모든 경우를 확인할 때까지 2 ~ 4 과정을 반복한다. # 사전에 정렬된 리스트 A 와 B 선언 n, m = 3, 4 a = [1, 3, 5] b = [2, 4, 6, 8] # 리스트 A 와 B 의 모든 원소를 담을 수 있는 크기의 결과 ..

공부/파이썬 2022.12.09

파이썬 기타 알고리즘 - 소수의 판별

### 알아두면 유용한 함수 ### ############# # > 소수의 판별 def is_prime_number(x): # 2부터 (x-1)까지 모든 수를 확인 for i in range(2, x): # x 가 해당 수로 나누어 떨어지는지 판별 if x % i == 0: return False # 소수가 아님 return True # 소수 print(is_prime_number(4)) print(is_prime_number(7)) # 해당 방법의 시간 복잡도는 O(x)이다. # 자연수의 약수 성질을 활용하여 소수 판별( 제곱근 까지만 확인 하면 소수 판별 가능 ) # 해당 방법 수행시 시간 복잡도는 O(X^1/2)로 처리 할 수 있다. import math def is_prime_number_sqrt..

공부/파이썬 2022.12.08

파이썬 주요 라이브러리 문법

### 주요 라이브러리의 문법 ### # 내장함수 : print(), input()과 같은 기본 입출력 기능부터 sorted()와 같은 정렬 기능을 포함하고 있는 기본 라이브러리 # itertools : 파이썬에서 반복되는 형태의 데이터를 처리하는 기능을 제공하는 라이브러리이다. 순열과 조합 라이브러리를 제공한다. # heapq : 힙 기능을 제공하는 라이르러리로 우선순위 큐 기능을 구형하기 위해 사용 # bisect : 이진 탐색 기능을 제공하는 라이브러리 # collections : 덱, 카운터등의 유용한 자료구조를 포함하고 있는 라이브러리 # math : 자주 사용되는 수학적인 기능을 포함하고 있는 라이브러리 ( 팩토리얼, 제곱근, 최대공약수 등 ) ########## # > 내장함수 # print..

공부/파이썬 2022.12.07

파이썬 입출력

### 입출력 ### # > 입력을 위한 일반적인 소스 코드 # 입력받을 데이터 개수 입력 n = int(input()) # 각 데이터를 공백으로 구분하여 입력 data = list(map(int, input().split())) data.sort(reverse = True) print(data) # > 공백을 기준으로 구분하여 적은 수의 데이터 입력 n, m, k = map(int, input().split()) print(n, m, k) # 입력 개수가 많은 경우 input 대신 sys 라이브러리의 sys.stdin.readline()을 사용한다 # import sys # sys.stdin.readline().rstrip() / rstrip()은 공백문자제거 import sys data = sys.s..

공부/파이썬 2022.12.06

파이썬 함수

### 함수 ### # 구조 # def 함수명(매개변수): # 실행할 소스코드 # retun 반환 값 # ex add def add(a, b): return(a + b) print(add(3, 7)) # return 제거 def add_Re(a, b): print('함수 결과', a + b) add_Re(3, 7) add_Re(b = 3, a = 11) # 함수 밖의 데이터 변경시 global 키워드 사용 c = 0 def func(): global c c += 1 for i in range(10): func() print(c) def add_Re_Re(a, b): return a + b # 람다 표현식 print((lambda a, b: a + b)(3, 7)) '이것이 취업을 위한 코딩테스트다 wit..

공부/파이썬 2022.12.06

파이썬 반복문

### 반복문 ### # > while 문 i = 1 result = 0 # i가 9보다 작거나 같을때 아래 코드를 반복 실행 # 1 while i = 80: print(i + 1, "번 학생은 합격 입니다.") # 3 score = [90, 85, 77, 65, 97] cheating_list = {2, 4} for i in range(5): if i + 1 in cheating_list: # 만약 리스트에 있는 학생이 부정행위라면 반복문의 처음으로 돌아간다. continue if score[i] >= 80: print(i + 1, "번 학생은 합격 입니다.") # 4 반복문은 중첩하여 사용가능하다. for i in range(2, 10): for j in range(1, 10): print(i, "X..

공부/파이썬 2022.12.06

파이썬 조건문

### 조건문 ### ## 비교연산자 # X == Y / X와 Y가 서로 같을때 True # X != Y / X와 Y가 서로 다를때 True # X > Y / X가 Y보다 클 때 True # X = Y / X가 Y보다 크거나 같을 때 True # X = 10: print(x) # 2 score = 85 if score >= 90: print('A') elif score >= 80: print('B') else: print('F') # 3 score = 85 if score >= 70: # 해당되는 코드는 모두 실행 print('70점 이상') if score >= 80: print('80점 이상') if score >= 90: print('90점 이상')..

공부/파이썬 2022.12.06

파이썬 자료형 - 집합 자료형

### 자료형 ### ## 집합 자료형 ## # 중복을 허용하지 않음 # 순서가 존재하지 않음 # 집합 자료형의 초기화 data = set([1, 1, 2, 3, 4, 4, 5]) print(data) data = {1, 1, 2, 3, 4, 4, 5} print(data) # > 잡헙 자료형의 연산 a = set([1, 2, 3, 4, 5]) b = set([3, 4, 5, 6, 7]) print("합집합", a | b) # 합집합 print("교집합", a & b) # 교집합 print("차집합", a - b) # 차집합 # > 집합 자료형 관련 함수 data = set([1, 2, 3]) print(data) # 새로운 원소 추가 data.add(4) print(data) # 새로운 원소 다중 추가..

공부/파이썬 2022.12.05