목록2024/11 (36)
컴퓨터공학 💻 도서관📚
원소가 1개인 경우에는 그대로 종료한다 1. 리스트 슬라이싱과 2. 리스트 컴프리헨션을 활용
comprehension 영단어 뜻은 이해, 이해력, 포용력 이다.List Comprehension 을 이용하면 리스트의 모든 요소를 단 한 줄로 관여할 수 있다 표현식 + for문 형식# case 1result = [int(input()) for i in range()]# case 2result = [list(map(int, input().split())) for i in range(n)]# case 3result = [[0]*n for i in range(n)] 표현식 + for문 + 조건문 형식# case 1n = 10result = [i for i in range(n) if i % 2 == 0]print(result)# 출력 결과 : [0, 2, 4, 6, 8]# case 2left_sid..
data = ['서울', '부산', '대구', '인천', '강릉'] city = data[0:3]print(city)# 출력 결과 : ['서울', '부산', '대구'] city = data[2:5]print(city)# 출력 결과 : ['대구', '인천', '강릉'] city = data[3:]print(city)# 출력 결과 : ['인천', '강릉'] city = data[:2]print(city)# 출력 결과 : ['서울', '부산'] city = data[2:-1] # data[2:4] 와 같다, 마지막은 열린구간이니까 마지막 앞에까지 출력print(city)# 출력 결과 : ['대구', '인천']
퀵 정렬 표준 라이브러리를 이용하는 경우에는 기본적으로 NlogN 을 항상 보장한다 퀵 정렬 동작 예시 아주 중요!!! : 위치가 엇갈릴 때는 '피벗'과 '작은 데이터'의 위치를 서로 변경한다. 퀵 정렬의 시간 복잡도 퀵 정렬은 이미 정렬된 배열에서 최악의 시간 복잡도를 가진다(우측에서부터 0보다 작은 데이터가 없기 때문이다)그래서 결국 위치가 엇갈려서 0이 자기 자신과 위치를 바꾸는 상황이 된다그리고 0과 나머지 숫자들의 묶음으로 분할이 된다그 후 계속 가장 작은 수와 나머지 숫자들의 묶음으로 분할이 되서 시간 복잡도가 O(N^^2) 이다.
선택 정렬 처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복합니다 내가 쓰던 선택 정렬과 본질은 같지만 형태만 다른 코드본질 : 0번째 인덱스에 가장 작은 수를 넣기여기선 가장 작은 수가 있는 인덱스 번호를 찾는 방식이다 파이썬에서 변수 스와프 하는 방법array[i], array[min] = array[min], array[i] c++ 표준 라이브러리에서 제공하는 swap 함수 삽입 정렬 처리되지 않은 데이터를 하니씩 골라 적절한 위치에 삽입한다 (데이터를 하나씩 확인하면서 이 데이터가 어느 위치에 들어가는게 맞는지 매번 계산한다) 선택정렬에 비해 구현나이도가 높은 편이지만, 일반적으로 더 효율적으로 동작한다 i 번째 요소가 좌측..
range 함수 : range(start : stop : step) range 함수 예시 1for i in range(3): print(i) # 출력 결과 :# 0# 1# 2 range 함수 예시 2for i in range(5, 8): # range(start, stop) print(i, end=' ') # 출력 결과 : 5 6 7 range 함수 예시 3for i in range(0, 6, 2): print(i, end=' ') # 출력 결과 : 0 2 4range 함수 예시 4# range 함수 역순 출력for i in range(3, 0, -1): print(i, end=' ') # 출력 결과 : 3 2 1range 함수 예시 5# ran..
queue.append((x,y)) : 2차원 튜플을 큐에 추가return graph[n-1][m-1] : print(bfs(0,0)) (0,0) 을 대입했기 때문에 graph 배열 인덱스도 [n-1][m-1] 처럼 - 1 해줘야 한다 실제로는 bfs 함수가 main 함수 위에 있어야 한다
(파이썬에서는 함수에 사용된 변수or 배열이 함수보다 아래에 있는데 정상적으로 되더라) ( ex. graph[][] ) (C언어에서는 함수 안에 있는 변수들은 전역변수로 따로 선언하지 않은 이상 다 지역변수여서 다 각각 선언을 해줘야 한다)(C언어에서는 함수에서 main함수에 있는 변수, 배열을 사용하고 싶으면 포인터를 이용해서 매개변수로 받아야 된다) dfs(x-1, y) 포함 4개 방향 코드 --> 코드 수행하고 혼자 반환하고 끝 --> [ 이 반환은 dfs(i, j)의 반환이 아니기에if dfs(i,j) == True: 이 코드에 영향을 주지 않는다 ] 대신 인접 노드의 값이 0이면 1로 바꾸는 효과가 있음 --> 그래서 그래프 형태에서 0이 인접한 덩어리를 1번만 셀 수 있다(와...