본문 바로가기
728x90
반응형

백준 알고리즘/정렬3

[백준 18870][파이썬] 좌표 압축 (파이썬 dictionary) https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 처음 생각한 알고리즘은 다음과 같다. 1. 리스트를 새로운 집합으로 만들어서 중복을 제거한다. 2. 집합을 리스트로 바꾸어서 정렬 후 다시 리스트로 생성한다. 3. 새로운 리스트 요소들의 인덱스가 곧 자신보다 작은 요소들의 개수가 된다. 오름차순으로 정렬을 하게 되면 자연스럽게 인덱스가 자신보다 같거나 작은 요소의 개수가 된다. 자신보다 작은 요소.. 2023. 1. 31.
[백준 1427][파이썬] 소트인사이드 (문자열을 리스트로, 리스트를 문자열로 변환) (리스트에서 특정 문자 제거) https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 각 자리수를 내림차순으로 정렬하는 문제이다. 그렇기 때문에 정수형으로 입력을 받는게 아니라 문자열로 입력을 받아 정렬을 하는 편이 좋다. 먼저 input으로 문자열을 입력받는다. n=input() 형 변환을 하지 않았기때문에 기본값인 문자열로 받게된다. 이제 이를 리스트로 변환을 한다. li=list(n) "Hello world !"라는 문자열을 입력하고 이를 print(li)를 통해 출력을 해보면 ['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', '.. 2023. 1. 27.
[백준 11650, 11651, 10814][파이썬] 좌표 정렬하기 (sort 정렬 기준 정하는 방법, sys 라이브러리 사용법) https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 이 문제의 경우 이중 리스트로 모두 저장한 후 정렬을 하면 된다. 기본적으로 sort 함수는 오름차순으로, 앞 순서부터 정렬을 하기 때문에 이 문제에서는 그냥 sort 정렬을 하면 된다. n=int(input()) li=[] for i in range(n): [a, b] = map(int, input().split()) li.append([a,.. 2023. 1. 20.
728x90
반응형