본문 바로가기

Python/정렬3

[Algorithm] 프로그래머스 42746 가장 큰 수 | 파이썬 (정렬) ※ 42746 가장 큰 수https://school.programmers.co.kr/learn/courses/30/lessons/42746 문제 해결 TIP문자열 비교에 대해 먼저 알아보자. print('2'위와 같이 '2'와 '20'을 비교하면 '20'이 크지만, '220'과 '202'를 비교하면 '220'이 더 커야한다. 따라서 문자열을 반복해주어 일관된 기준으로 비교해준다. 조건 중 numbers의 원소가 1000 이하인 점을 참고하여 3번 반복한 문자열들끼리 비교 정렬하여 출력하도록 한다. 전체 코드def solution(numbers): numbers = list(map(str, numbers)) numbers.sort(key=lambda x: x*3, reverse=True) .. 2024. 9. 5.
[Algorithm] 파이썬 정렬, lambda 사용 우선 파이썬에서 sort()와 sorted() 함수를 통해 정렬을 할 수 있다.sort() 원본 자체를 정렬시켜 준다.a = [1,5,2,7]a.sort() print(a)#a = [1,2,5,7] sorted() 원본을 변형시키지 않고 새로운 list를 반환한다.a = [1,5,2,7]b = sorted(a)print(a)print(b)#a = [1,5,2,7]#b = [1,2,5,7] reverse 정렬 기능은 기본적으로 오름차순으로 제공한다. 내림차순으로 정렬하고 싶은 경우, reverse 파라미터를 통해 정렬할 수 있다.a = [1,5,2,7]a.sort(reverse=True)print(a)#a = [7,5,2,1] key 정렬 조건을 설정할 함수를 넣을 수 있다.a = ['love','i','.. 2024. 6. 20.
[Algorithm] Sort(정렬) 정렬이란? 정렬은 어떤 데이터셋이 주어졌을 때 이를 정해진 순서대로 나열하여 재배치하는 문제이다. 종류가 많으며 그리디 문제에 쓰이는 경우가 많다. 정렬의 종류 O(n²) : Insertion sort, Selection sort, Bubble sort O(nlogn) : Quick sort, Merge sort, Heap sort 버블정렬(Bubble sort) 인접한 두 원소를 비교 왼쪽 원소>오른쪽 원소라면 swap 가장 큰 원소부터 오른쪽에 정렬됨 데이터가 하나씩 정렬되면서 비교 대상에서 제외 합병정렬(Merge sort) 분할 정복 방식으로 설계된 알고리즘 하나의 배열을 정확히 반으로 나눔 나뉜 배열들을 정렬 다시 하나의 배열로 합치기 2024. 1. 5.