[알고리즘] 정렬 알고리즘
공부 : 동빈나 유튜브 정렬(Sorting) : 데이터를 특정한 기준에 따라 순서대로 나열하는 것 1. 선택정렬 - 처리되지 않은 데이터 중 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복 - 시간 복잡도 : O(N²) N번 만큼 가장 작은 수를 찾아서 맨 앞으로 보낸다. 전체 연산 횟수 = N + (N-1) + (N-2) + … + 2 = (N² + N - 2) / 2 array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i #가장 작은 원소의 인덱스 for j in range(i+1, len(array)): if array[min_index] > array[j]: mi..
[알고리즘/프로그래머스] 가장 큰 수
정렬 > 가장 큰 수 / level2 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 나의 풀이 접근방법 1. permutations 사용 --> 문제점 : 시간 초과 접근방법 2. 문자열이 큰 순서대로 정렬하면 될 것 --> 문제점 : 3, 30이 있을 때 330이 아니라 303으로 정렬됨 접근방법 3. 문자열 정렬 비교 시 자릿수를 맞춰준다. - 문자열 중 가장 큰 자릿수를 구해서 맞춰줌 import itertools def solution(..
[알고리즘/프로그래머스] 퍼즐 조각 채우기
위클리 챌린지 > 퍼즐 조각 채우기 코딩테스트 연습 - 퍼즐 조각 채우기 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 나의 풀이 - BFS를 사용하여 각 판에 있는 퍼즐 조각 좌표를 찾는다. 같은 퍼즐 조각(또는 빈 자리 조각)끼리 같은 리스트 안에 들어가도록 해줌 그리고 option을 사용하여 game_board..