sorting 4

프로그래머스 - H-index

🔸 문제 접근 방식 다음 방식으로 문제를 접근하였다. 논문이 인용될 최대값을 H-index로 설정한 뒤 1씩 감소시켜가며 H-index 조건을 확인한다. 인용될 최대값은 len(citations) H-index는 두 조건을 만족한다. H-index 회 이상 인용된 논문의 수가 H-index 이상이다. H-index 회 이하 인용된 논문의 수가 H-index 이하이다. H-index 의 최대값을 선택한다. 📌 문제 풀이 정렬 문제이기는 하나, H-index가 될 target값을 기준으로 citations을 분리했다. target값보다 크거나 같은 논문은 bigList에 추가 target값보다 작거나 같은 논문은 smallList에 추가 그리고 2 조건을 만족하면 H-index 그룹인 resultList에 ..

알고리즘 2021.06.17

백준 10814 문제풀이

📌문제 설명 📌문제접근방식 enumerate함수를 이용해 회원별 번호를 매긴 뒤 나이순으로 정렬하면 된다고 생각했다. 만약 나이가 같다면 매겨둔 회원 번호로 정렬을 실시한다. 따라서 정렬의 기준를 2개로 설정했다. 📌문제풀이 1차 시도 실패한 이유는 다른 곳에서 발생했다. 입력받을 때 나이가 문자로 입력되었다. [(['21', 'Junkyu'], 1), (['21', 'Dohyun'], 2), (['20', 'Sunyoung'], 3)] 따라서 '21'과 '20'을 숫자로 바꿔주니 문제 없이 통과했다. 비교할 때는 반드시 비교하는 대상의 타입이 무엇인지 확인해야겠다. 소스코드 import sys n = int(sys.stdin.readline().rstrip()) input_list = [sys.stdi..

알고리즘 2021.03.20

코딩테스트에서 사용할만한 정렬기법

정렬 기술 📌sort 메서드 오름 차순 정렬 리스트에는 기본 내장된 sort 메서드가 존재한다. 이를 사용하면 쉽게 정렬이 가능하다. list1 = [7,1,5,3,2,4,6] list1.sort() print(list1) # [1, 2, 3, 4, 5, 6, 7] 내림 차순 정렬 list1 = [7,1,5,3,2,4,6] list1.sort(reverse = True) print(list1) # [7,6,5,4,3,2,1] 📌특정 조건으로 정렬하기 단순한 크기순 정렬이 아니라 특정 조건으로 정렬하려면 어떻게 해야 할까? 예를 들어 딕셔너리 경우 key와 value로 자료형이 구성되어 있다. 그 중 value로 정렬하려면 다음과 같은 방법을 이용할 수 있다. 정렬의 기준이 되는 함수를 정의한다. 정의한 ..

[선택정렬, 삽입정렬] - Selection Sort, Insertion Sort (Python)

선택, 삽입 정렬 특정값 index를 찾는 알고리즘 find_index() : List 안에 있는 값을 찾아서 해당 위치를 반환해주는 함수 def find_index(list_, var): res_index = -1 for i in range(len(list_)): if list_[i] == var: res_index = i break return res_index data = [24, 10, 3, 8, 33, 27, 46] print(find_index(data, 8)) Selection Sort 시간복잡도는 Worst - O(N^2), Avgerage - O(N^2), Best - O(N^2) for문을 돌며 가장 작은 값을 찾아 0번째부터 바꿔나간다. for문을 2번 돌아야 한다. i==0부터 li..

알고리즘 2020.12.23