본문 바로가기
728x90
반응형

While3

병합 알고리즘 w/파이썬 first = [1,3,5] , second = [2,4] 두 배열을 [1,2,3,4,5]로 합치고 싶다. 각 배열의 처음 순서부터 비교하여 1 1을 선택 3 > 2 -> 2를 선택 3 3을 선택 5 > 4 -> 4를 선택 - > 그리고 마지막 남은 5를 처리한다. #[?] 2개의 정수배열 합치기 : 오름차순 정렬 가정 #병합알고리즘 : 오름차순 정렬된 정수 배열 2개를 하나로 병합 #[1] input - 정렬되지 않은 배열인 경우 정렬이 필요함 first = [1,3,5] second = [2,4] m = len(first) n = len(second) merge = [0]* (m+n) #m+n자리만큼 병합데이터 들어갈 배열을 만듦 i = 0 j = 0 k = 0 #[2] pr.. 2023. 5. 21. 19:28
이진 검색 알고리즘 w/파이썬 정렬된 데이터를 이진 검색을 활용하여 반띵. 내 신발 가격 10만원 업 다운? 업 -> 15만원 -> 다운-> 12만원 -> 업 -> 14만원! 평소에 이런식으로 물건 가격 맞추기 했던 기억을 되살려서 문제를 풀어보자. 로우 하이 인덱스값을 지정하고, 로우와 하이 인덱스의 중간지점에 평균 미드 인덱스를 지정한다. 그리고 그 미드인덱스 값이 찾는 값보다 큰지 작은지에 따라 로우/하이를 조정하여, 찾는 값이 나올때까지 while반복. #검색알고리즘(search algorithm): 주어진 데이터에서 특정 데이터를 찾음 #정렬되어있는 데이터를 이진검색을 사용하여 반띵나눠서 검색 def main(): #[1]input data = [1,3,5,7,9] #오름차순정렬로 가정 - 안되어있는 경우 정렬 필요 n = .. 2023. 5. 20. 15:51
자연수 뒤집어 배열로 만들기 (자료형 처리 / linkedlist / while) 문제 출처 - 프로그래머스 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를 들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 return 12345 [5,4,3,2,1] %10 을 해서 나머지를 구하고, /10을 해서 자릿수를 하나씩 줄여나간다. 그리고 0이 될 때까지 자릿수 줄임을 반복하기 위한 while문을 바로 생각해 낼 수 있었다. 하지만 한 가지 함정이, 이 문제 인풋이 long 타입으로 들어오는데 int로 리턴을 뱉어야 한다. long int 간의 변환을 위해 여러 방법을 사용해봤으나 먹히지 않았다. 대체 왜지..? 이 문제의 의도한 바가 그게 아닌거였나,,, 그래서.. 2022. 12. 13. 21:41
728x90
반응형