TIL 221108

이정익·2022년 11월 8일
0

TIL

목록 보기
7/27
post-custom-banner

1. 파이썬 문법(2)

1) set(집합)

a = [1,23,6,4,3,2,67,7,2,3,5]
a_set = set(a)
print(a_set) # {1, 2, 3, 4, 67, 6, 7, 5, 23} 중복이 제거된다.

a_set & b_set # 교집합
a_set | b_set # 합집합
a_set - b_set # 차집합

2) try - except

...
try{
  ...
}
catch{
  ...
}
...
try:
	...
except:
	...

3) map

map(func, list) # list각 객체를 func함수 반복

4) lambda

(x) => x + 10
lambda x: x + 10

5) filter

a = [1,2,3,4,5,6]
print(list(filter(lambda x: x%2, a))) # [1, 3, 5] True인 값만 반환

2) 자료구조 및 알고리즘

1) array, linked list

array1 = [1,2,3,4,5]
linked_list1 = [1] -> [2] -> [3] -> [4] -> [5]

array는 탐색에 O(1), 수정에 O(N)이 걸리고
linked list는 탐색에 O(N), 수정에 O(1)이 걸린다.

경우ArrayLinkedList
특정원소 조회O(1)O(N)
중간에 삽입 삭제O(N)O(1)
데이터 추가데이터 추가 시 모든 공간이 다 차버렸다면 새로운 메모리 공간을 할당받아야함모든 공간이 다 찼어도 맨 뒤의 노드만 동적으로 추가
정리데이터 접근이 빈번하면 Array사용삽입 삭제가 빈번하면 LinkedList 사용

파이썬의 list는 동적 배일을 사용해 배열의 길이가 늘어나도 O(1)의 시간복잡도가 걸리도록 설계되어 있다.
따라서 파이썬의 배열은 Array로 구현되어있지만, LinkedList로도 사용 가능한 효율적인 자료구조다.

백준 1158 참고.

2) 재귀 함수

맨날 말로만 듣던 재귀 함수
자기 자신을 반복해서 호출하는 함수

def count_down(num):
	if num < 0:
    	return
    print(num)
    count_down(num-1)

3) 오늘의 개발지식

DNS

Domain Name System
간단하게 말해 영문/한글로 된 주소를 IP네트워크에서 찾아갈 수 있는 IP로 변환해 주는 시스템이다.

4) TMI

오늘 개기월식이라던데 집에서 보이지 않는다... 껄껄
좀있다 산책하러 나갔을때도 계속 되고 있으면 볼 수 있겠네~!

알고리즘은 몹시 어렵다... 수학적 사고를 해야하는데 머리가 굳은건지... 계속해서 훈련하다보면 더 좋아질거라 믿고 어려워도 꾸준히 하는 습관을 만들도록 노력해야겠다.

profile
주니어 프론트엔드 엔지니어로 한걸음 나아가는 중입니다.
post-custom-banner

1개의 댓글

comment-user-thumbnail
2022년 11월 9일

개기월식 슬랙에 사진 올라와있는거 한번 봐보세요!! 짱이였는데 잘 못보셨다니 아쉽네요 ㅎㅎ
알고리즘은 친구처럼 항상 옆에끼고 계속해서 관심을 줘야 조금씩 늘더라구요
화이팅입니다!

답글 달기