목록ALGORITHM/BASIC (15)
정구리의 우주정복
버블정렬과 삽입정렬로 2750번을 풀어보았따 1. 버블정렬 #수 정렬하기 (오름차순) #1. bubble sort testCase = int(input()) num = [] save = 0 for i in range(testCase): num.append(int(input())) for j in range(testCase): for k in range(testCase-(j+1)): if num[k] >= num[k+1]: #뒤에ㅅ꺼가 더 큰 경우 save = num[k+1] num[k+1] = num[k] num[k] = save for l in num: print(l) 2. 삽입정렬 #2.삽입정렬 #최소값을 찾아서 자리를 바꿔준다 testCase = int(input()) num = [] for i i..
브루트포스란 ? 고지식한 패턴검색으로 본문의 처음부터 끝까지 차례대로 순회하면서 패턴 내의 문자들을 일일이 비교하는 방식 파이썬 코드 #고지식한 패턴 검색 (브루트 포스) #본문 처음부터 끝까지 차레대로 순회하면서 패턴내의 문자들을 일일이 비교하는 방식 arr = input() #처음 문자열 search = input() #찾을 문자열 n = len(arr) m = len(search) def BruteForce(search,arr): i =0 #arr의 인덱스 j =0 #search 의 인덱스 while j < m and i
#소스코드는 공부용으로 만들어본거라 틀릴수있음 ## 파이썬 선택정렬이란 ? 주어진 자료중 가장 작은 값의 원소부터 차례대로 선택하여 위치를 교환해 정렬 ! 과정: 1. List 중 최소값 찾기 2. 그 값을 List 맨 앞과 교환 3. 처음을 제외한 나머지 대상으로 반복 시간복잡도는 O(n^2) 이다 #선택정렬 : select sort #주어진 자료중 가장 작은 값의 원소부터 차례대로 선택하여 위치를 교횐하는 방식 #최소값 찾기 #비교비교비교 해서 찾기 arr = [int(x) for x in input().split(' ')] index = 0 for i in range(len(arr)-1): mini = arr[i] #최소값 for j in range(i,len(arr)): #최소값 찾기 #print..
#코드는 공부용으로 구현해본거라 틀릴수도있음 ## 파이썬 이진검색이란 ? 자료 가운데 항목의 키값과 비교해서 다음 검색 위치를 결정해서 검색하는 방식 ( 무조건 정렬된 형태여야한다) 검색 범위를 반으로 줄여가며 빠르게 검색할 수 있다 (O(logN) 으로 순차보다 빠르다 과정 : 1, 자료 중앙의 원소를 선택 2, 중앙값과 목표값을 비교 3, 목표값 중앙값 : 자료의 오른쪽 반에 대해서 새로 검색을 수행 값을 찾을때까지 반복 #이진검색 def solution(L,x): lower = 0 upper = len(L)-1 while lower x : upper = middle -1 return -1 L = [1,2,3,4,5,6,7,8,9] ..
#소스코드는 공부용으로 구현한거라 틀릴수 있음 ##파이썬으로 작성 순차검색이란 ? 일렬로 된 자료들을 앞에서부터 순서대로 검색하는 알고리즘 1) 정렬이 되지 않은 경우 2) 정렬이 된 경우 이렇게 두가지로 나눠서 알아보자 1) 정렬이 되지 않은 경우 앞에서부터 하나씩 검사를 진행하며 값이 일치 하는것을 찾으면 index 를 반환한다 #정렬되지 않은 경우 arr = [int(x) for x in input().split(',')] search = int(input()) #찾고싶어하는 것 check = 0 for i in range(len(arr)): if arr[i] == search : check += 1 index = i if check>=1: print(index) else: print('못찾아벌휨'..
비트연산자를 이용해서 부분집합을 만들어보았다 (아주 헷 갈 림) arr = [3,6] n = len(arr) for i in range(1
버블 정렬 ( Bubble Sort ) 란 ? 인접한 두개의 원소를 비교하며 자리를 계속 교환하는 방식 시간복잡도는 O(n^2) 이다 파이썬 코드 #버블 정렬 : 두개의 인접한 원소들을 비교하며 자리를 계속 교환하는 방식 num = [int(x) for x in input().strip().split(' ')] change = 0 def bubbleSotr(num,change): for i in range(len(num)-1,0,-1): for j in range(0,i): if num[j]> num[j+1]: change= num[j] num[j] = num[j+1] num[j+1] = change print(num) bubbleSotr(num,change) 첫번째 시행을 하면 제일 크거나 작은 값이 ..