Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- Shorts
- EDA
- SQL
- 뷰티 광고
- YouTube
- ASAC14일차
- pandas
- CCP자격증
- 머신러닝
- sql eda
- text summarization
- ML
- 백준
- ASAC
- DFS
- 데이터분석
- deep learning
- Python
- selenium
- 크롤링
- 파이썬
- JSON
- 프로그래머스
- cnn optuna
- Crawling
- Machine learning
- BFS
- 파이썬 이미지 처리
- ASAC5기
- join
Archives
- Today
- Total
낼름낼름 동동이
[백준 25305] 커트라인 (python3) 본문
문제 분석
기본 정렬 알고리즘을 구현해서 풀거나 파이썬의 sort() 메소드, sorted() 함수를 이용해서 문제를 풀 수 있다.
# sort 함수를 사용해서 쉽게 풀기
# N : 리스트의 길이
# k : 출력할 리스트 인덱스 값
N, k = map(int, input().split(" "))
pri_list = list(map(int,input().split()))
# 점수가 큰 값에서부터 정렬할 수 있도록 처리
pri_list.sort( key=lambda x:-x)
# 인덱스는 0에서 시작하므로 k-1번째 인덱스가 커트라인이 된다.
print(pri_list[k-1])
# 선택 정렬 알고리즘을 구현해서 만들기
N, k = map(int, input().split(" "))
pri_list = list(map(int,input().split()))
## 선택 정렬 사용
for pri in range(len(pri_list)):
# 지금 가장 큰 녀석이 초기 값
max_step = pri
# 2) pri+1 위치의 값부터 끝까지 다 돌리기
for i in range(pri+1, len(pri_list)):
if pri_list[i] > pri_list[max_step]: # 더 큰 값이 나타났다면 max값을 변경
max_step = i
else:
pass
# 다음 자리로 교환하기 위해 멀티할당으로 바로 swap
pri_list[max_step], pri_list[pri] = pri_list[pri], pri_list[max_step]
print(pri_list[k-1])
마무리
정렬 구현 방식에서는 선택 정렬로 풀어봤는데, 시간이 날 때 간단하게 삽입 정렬과 버블 정렬로 풀어본 뒤, 퀵 정렬도 구현해서 직접 풀어보고 시간의 차이를 체크 해봐야겠다.
'코딩 > Backjun' 카테고리의 다른 글
[백준] 2745번 (1) | 2024.11.02 |
---|---|
[백준 28278] 스택 2 (0) | 2024.03.29 |
[백준 1181] 단어 정렬 (python3) (0) | 2024.03.27 |
[백준 2444] 별 찍어보기 (python3) (0) | 2024.03.26 |
[백준 2798] 블랙잭 (Java) (0) | 2021.04.07 |