파이썬 기초 문법
튜플 - 불변형 배열 [] 대신 ()사용
수정 불가능
집합 - set(list_Name), 중복 제거, & 교집합, | 합잡합, - 차집합
f-string - print(f'{name}의 점수는 {score}입니다')
예외처리 - *남용 주의
for person in people:
try:
if person['age'] > 20:
print(person['name'])
except:
print('에러입니다.')
파일 불러오기
from file_name import * : 파일의 모든 내용 불러오기
from file_name import func_ex : func_ex만 불러오기
한 줄의 마법
if - 삼항 연산자
result = ('참일때' if 조건 else '거짓일때')
for - 예시코드
|
1
2
3
4
5
6
|
a_list = [1, 3, 2, 5, 1, 2]
b_list = [a*2 for a in a_list] # a_list요소를 각 2배 증가시켜 b_list에 추가
print(b_list) # [2, 6, 4, 10, 2, 4]
|
cs |
map, filter
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
def check_adult(person):
return '성인' if person['age'] > 20 else '청소년'
map_result = map(lambda x: '성인' if x['age'] > 20 else '청소년', people)
print(list(map_result))
filter_result = map(lambda x: x['age'] > 20, people)
print(list(filter_result))
|
cs |
알고리즘
시간 복잡도 - 입력값과 문제를 해결하는 데 걸리는 시간과의 상관관계
|
1
2
3
4
5
6
|
for num in array: # array 의 길이만큼 아래 연산이 실행
for compare_num in array: # array 의 길이만큼 아래 연산이 실행
if num < compare_num: # 비교 연산 1번 실행
break
else:
return num
|
cs |
- 위에서 연산된 것들을 더해보면,
1. array의 길이 X array의 길이 X 비교 연산 1번
만큼의 시간이 필요합니다. 여기서 array(입력값)의 길이는 보통 N이라고 표현합니다.
그러면 위의 시간을 N^2과 같이 표현할 수 있습니다.
|
1
2
3
4
5
|
def find_max_num(array): max_num = array[0]
for num in array:
if num > max_num:
max_num = num
return max_num
|
cs |
위의 함수와 같은 기능을 하는 함수로, for문 하나만으로 동작하게끔 수정하였다.
이 함수는 2N+1 만큼의 시간이 걸렸다.
점근 표기법
최악의 경우를 나타내는 빅오 표기법 O(N)
소감: 알고리즘 = 앓고리즘
'TIL' 카테고리의 다른 글
| 2022.11.11 TIL 알고리즘 정렬 / CPU (0) | 2022.11.11 |
|---|---|
| 2022.11.10 TIL 알고리즘 (0) | 2022.11.10 |
| 2022.11.08 (0) | 2022.11.08 |
| [WIL] 2022.10.31~11.04 (0) | 2022.11.07 |
| 첫 미니프로젝트 발표 2022.11.04 TIL (0) | 2022.11.04 |