티스토리 뷰

알고리즘/백준

백준 18870 좌표 압축 python3

4567은 소수 2021. 6. 29. 02:37

https://www.acmicpc.net/problem/18870

 

18870번: 좌표 압축

수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌

www.acmicpc.net

자기 전에 간단한 문제를 하나 풀고 자겠습니다.

 

문제는 주어진 입력이 X1, X2, .., Xn 일 때 Xi 보다 작은 값이 몇 개인지 구하는 문제입니다.

처음 입력에 대해 중복을 제거한 오름차순 정렬 후 해당 값의 index를 구해주면 됩니다.

 

예제를 예를 들면 입력이 2 4 -10 4 -9 일 때

-10 -9 2 4 로 중복 제거 오름차순 => -10의 index = 0 ,-9의 index = 1, 2의 index = 2, 4의 index = 3 임을 알 수 있고 이는 답입니다.

 

코드는 다음과 같습니다.

처음에 index 함수를 이용해 그냥 구하려했는데 시간초과가 났습니다. index 찾는데 정렬된 상황에서 이분 탐색으로 찾아도 100만개면 O(100만 * log100만) 이고 dict로 찾는 건 O(1) 이므로 O(100만) 입니다. 그래서 dict로 변환 후 다시 검색을 합니다.

 

'알고리즘 > 백준' 카테고리의 다른 글

백준 17822 원판 돌리기 C++  (0) 2021.07.16
백준 2212 센서  (0) 2021.07.06
백준 2056 작업 C++  (0) 2021.06.25
백준 1356 유진수 python3  (0) 2021.06.19
백준 2116 주사위 쌓기 C++  (0) 2021.06.19
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
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
글 보관함