본문 바로가기

분류 전체보기

(172)
[python] 리스트 정리 슬라이스 oddnumber = [1, 3, 5, 7, 9] cafes = ['star', 'bene', 'yoger', 'friends'] A = [1, 5, 'A', 'CC', 'B'] listInList = [[1, 3, 5, 6, 7], cafes, oddnumber, 1, 3, 'Abc'] a = oddnumber[1:5] b = cafes[1:] c = A[:2] d = listInList[0][1:4] #리스트 내 리스트 접근 print(a) #[3, 5, 7, 6] print(b) #['bene', 'yoger', 'friends'] print(c) #[1, 5] print(d) #[3, 5, 6] 삭제 numbers = [2, 4, 6, 8, 10, 1, 3, 5, 7, 9] numbers..
[알고리즘] 백준 1427 소트인사이드 num = input() for i in range(9, -1, -1): for j in num: if int(j) == i: print(i, end='') print(i, end='') 는 줄바꿈없이 이어서 출력!
[알고리즘] 선택정렬 (selection sort) 선택정렬이란? 주어진 데이터 중, 최소값을 찾음 해당 최소값을 데이터 맨앞의 값과 자리바꿈 맨앞의 위치를 빼고 동일한 방법으로 반복 알고리즘 구현 selection_sort(data): for stand in range(len(data)-1): lowest = stand for index in range(stand + 1, len(data)): if data[lowest] > data[index]: lowest = index data[lowest], data[stand] = data[stand], data[lowest] return data
[알고리즘] 삽입정렬 (insertion sort) 삽입정렬이란? 두번째 인덱스부터 시작한다 key값 앞에 있는 데이터(front)부터 비교해서 key < front 이면, front값을 뒤 인덱스로 복사 key보다 작은 데이터를 만날때까지 반복, 작은 데이터를 만나면 바로 뒤에 key값을 이동 예 : data_list = [9, 3, 2, 5] 1번째 실행 : key=9, [9,3,2,5] 2번째 실행 : key=3, front=9, 자리바꿈 [3,9,2,5] 3번째 실행 : key=2, front=9, 자리바꿈 / key=2, front=3, 자리바꿈 [2,3,9,5] 4번째 실행 : key=5, front=9, 자리바꿈 3보다 5가 크므로 끝 [2,3,5,9] 알고리즘 구현 def insertion_sort(data): for index in ran..
[알고리즘] 버블정렬 (bubble sort) 버블정렬이란? 두개의 인접한 데이터를 비교해서 앞에 있는 데이터가 뒤에 있는 데이터보다 크면, 자리를 바꾼다 예 : data_list = [1, 9, 3, 2] 1차 로직 1, 9 비교 : 자리바꿈X [1,9,3,2] 9, 3 비교 : 자리바꿈O [1,3,9,2] 9, 2 비교 : 자리바꿈O [1,3,2,9] 2차 로직 1, 3 비교 : 자리바꿈X [1,3,2,9] 3, 2 비교 : 자리바꿈O [1,2,3,9] 3, 9 비교 : 자리바꿈X [1,2,3,9] 3차 로직 1, 2 비교 : 자리바꿈X [1,2,3,9] 2, 3 비교 : 자리바꿈X [1,2,3,9] 3, 9 비교 : 자리바꿈X [1,2,3,9] 알고리즘 구현 n개의 리스트가 있는 경우, 최대 n-1번의 로직 적용 로직이 경우에 따라 일찍 끝날수..
[알고리즘] 백준 2750 수 정렬하기 n = int(input()) input_list = [] sort = [] for _ in range(n): input_list.append(int(input())) for _ in range(n): sort.append(min(input_list)) input_list.remove(min(input_list)) for i in range(n): print(sort[i]) 크기없이 생성한 리스트는 = 연산으로 할당되지 않는다! append로 값 넣어주자 n = int(input()) array = list() for _ in range(n): array.append(int(input())) for i in range(n): min_index = i for j in range(i + 1, n): if a..
[자료구조] 힙 (heap) 힙 이란? 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리 완전 이진 트리? 노드를 삽입할때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 힙을 사용하는 이유 배열에 데이터를 넣고, 최소값과 최대값을 찾는 시간 = O(n) 힙에 데이터를 넣고, 최소값과 최대값을 찾는 시간 = O(logn) 우선순위큐와 같이 최대값/최소값을 빠르게 찾아야 하는 자료구조 및 알고리즘 구현에 활용 힙 구조 힙은 최대힙(최대값을 구하기 위한 구조, Max Heap)과 최소힙(최소값을 구하기 위한 구조, Min Heap)으로 분류 힙은 두가지 조건을 가지고 있는 자료구조다 각 노드의 값은 해당 노드의 자식노드가 가진 값보다 크거나 같다(이게 최대힙) 완전 이진 트리의 구조를 가진다 힙과 이진 탐색 트리 공통점..
[알고리즘] 백준 1920 수찾기 n = int(input()) nn = set(map(int, input().split())) m = int(input()) mm = list(map(int, input().split())) for i in range(m): if mm[i] in nn: print('1') else: print('0') 더 최적화 시킨 코드 N, A = int(input()), {i:1 for i in map(int, input().split())} M = int(input()) for i in list(map(int, input().split())): print(A.get(i, 0)) 딕셔너리를 confrehension으로 만들기 for문으로 입력받기 get함수를 이용해 1 또는 0 출력