본문 바로가기

TIL

2022.11.09 파이썬 기초 문법과 알고리즘 기본

파이썬 기초 문법

튜플 - 불변형 배열 [] 대신 ()사용
          수정 불가능

집합 - 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  = [132512]
 
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