본문 바로가기

728x90

프로그래밍 회고록/Python

(18)
2021.12.20 부품찾기 # 오늘의 문제 부품 찾기 난이도 중 | 풀이시간 30분 | 시간 제한 1초 | 메모리 제한 128 # 나의 코드 나의 코드 어레이를 받아그 안의 값에서 타겟 어레이의 원소값이 존재하는 지 찾기 위해서 루프를 돌아 있다면 있다고 답변하고 없으면 없다고 답변하는 코드 def binary_search(array, target, start, end): if start > end: return None mid =(start + end)//2 if array[mid] == target: return mid elif array[mid] > target: return binary_search(array, target, start, mid -1) else: return binary_search(array, target..
2021.12.14 이진 탐색 연습 # 오늘의 문제 이진 탐색 연습 # 나의 코드 이진 탐색 연습 중 재귀함수로 구현된 코드 def binary_search(array, target, start, end): if start > end: return None mid = (start + end) //2 if array[mid] == target: return mid elif array[mid] > target: return binary_search(array, target, start, mid -1) else: return binary_search(array, target, mid +1 , end) n, target = list(map(int, input().split())) array = list(map(int, input().split()..
2021.12.09 코테_두 배열의 원소 교체 # 오늘의 문제 두 배열의 원소 교체 난이도 하 | 풀이시간 20분 | 시간 제한 2초 | 메모리 제한 128m # 나의 코드 n,m = map(int, input().split()) arr1 = list(map(int, input().split())) arr2 = list(map(int, input().split())) arr1.sort() arr2.sort(reverse = True) for i in range(m): if arr1[i] < arr2[i]: arr1[i], arr2[i] = arr2[i], arr1[i] else: break sum = 0 for i in range(n): sum = sum + arr1[i] print(arr1) # 정답과의 비교 1. 내 코드의 경우 덧셈을 명시적으로..
2021.12.08 코테_낮은 순서로 출력 # 오늘의 문제 낮은 순서로 출력 난이도 하 | 풀이시간 20분 | 시간 제한 1초 | 메모리 제한 128m # 나의 코드 n = int(input()) arr = [] for _ in range(n): inputData = input().split() arr.append((inputData[0], int(inputData[1]))) result = sorted(arr, key = lambda data: data[1]) for i in arr: print(i[0], end= ' ')
2021.12.08 코테_위에서 아래로 # 오늘의 문제 위에서 아래로 난이도 하 | 풀이시간 15분 | 시간 제한 1초 | 메모리 제한 128m # 나의 코드 n = input() arr = [] for _ in range(int(n)): arr.append(int(input())) arr.sort(reverse=True) for i in arr: print(i, end=' ') # 정답과의 비교 코드 절차상의 큰 차이는 없다고 판단한다. n = int(input()) array = [] for i in range(n): array.append(int(input)) array = sorted(array, reverse = True) for i in array: print(i, end=' ')
2021.12.08 코테_퀵 정렬 연습 # 오늘의 문제 퀵 정렬 연습 # 나의 코드 퀵 정렬 연습 퀵정렬 : pivot ( 보통 배열의 첫번째 값을 지정한다 )이라고 하는 다른 값들과 비교할 값을 중점으로 왼쪽과 오른쪽을 나눈 후 재귀적으로 해당 함수를 계속 호출해 정렬하는 방식 직관적인 일반적 프로그래밍 언어식으로 만든 방식 array = [5, 7, 9, 0, 3, 1, 6, 2, 4, 8] def quick_sort(array, start, end): if start >= end: return pivot = start left = start + 1 right = end while left right: array[right], array[pivot] = array[pivot], array[right] else: array[left], ar..
2021.11.25 코테_삽입 정렬 연습 # 오늘의 문제 삽입 정렬 연습 # 나의 코드 삽입 정렬 연습 삽입정렬 : 배열의 모든 요소를 앞에서부터 정렬된 배열 부분과 비교한 후 자신이 들어가야할 정렬 위치를 찾아 삽입함으로 정렬이 되도록 하는 알고리즘을 말한다. array = [7,5,9,0,3,1,6,2,4,8] for i in range(1, len(array)): for j in range( i , 0 , -1): if array[j] < array[j-1]: array[j-1],array[j] = array[j],array[j-1] print(array) # 첫번째 배열은 정렬되어 있다고 가정하고 for 문을 돈다. # 두번째 루프에서는 i번 ~ 0 번 까지 -1씩 (큰수에서 작은수로) 돈다. # 배열의 j번째보다 배열의 j-1번째가 크..
2021.11.22 코테_선택 정렬 연습 # 오늘의 문제 선택 정렬 연습 # 나의 코드 선택 정렬 연습 선택정렬 : 기준이 되는 데이터 값을 토대로 유한체의 값을 뽑아 비교해가며 가장 작은 값을 찾아 첫번째 에 넣고, 그 다음 값을 가져와 유한체의 값을 뽑아 비교해 두번째에 넣고 끝날때 까지 그 작업을 n번 지속해 정렬을 하는 방법 array = [ 7, 5, 9, 0, 3, 1, 6, 2, 4, 8 ] for i in range(len(array)): min_index = i #range 파라미터 2개 들어가는 걸 모른다. for j in range( i+ 1 , len(array) ): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_in..

728x90
반응형