![[백준 / BOJ] 18870번 좌표 압축 (C++, Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsgwIq%2FbtrJryL0rjP%2F4cTtKnfUPiwDKihT9PSbQk%2Fimg.png)
[백준 / BOJ] 18870번 좌표 압축 (C++, Python)◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 1. 16:42
Table of Contents
반응형
링크 : https://www.acmicpc.net/problem/18870
18870번: 좌표 압축
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌
www.acmicpc.net
문제
문제 풀이
C++ 상세 풀이
더보기
그냥 find함수를 쓰면 시간 초과가 나므로 lower_bound를 활용하면 된다.
lower_bound에 대한 자세한 설명은 밑의 링크를 참고하면 좋을 것 같다.
https://chanhuiseok.github.io/posts/algo-55/
알고리즘 - c++ lower_bound, upper_bound 활용하기
컴퓨터/IT/알고리즘 정리 블로그
chanhuiseok.github.io
Python 상세 풀이
더보기
dict 자료형을 사용하면 쉽게 풀 수 있다. arr에 선입력을 받고, arr2는 중복을 없앤 후 정렬해준다.
N = int(input())
arr = list(map(int, input().split()))
arr2 = sorted(list(set(arr)))
dic = {arr2[i] : i for i in range(len(arr2))}
C++ 코드 전문
Python 코드 전문
소감
반응형
'◎ 자료구조와 알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 / BOJ] 14425번 문자열 집합 (C++, Python) (0) | 2022.06.01 |
---|---|
[백준 / BOJ] 10815번 숫자 카드 (C++, Python) (0) | 2022.06.01 |
[백준 / BOJ] 10814번 나이순 정렬 (C++, Python) (0) | 2022.06.01 |
[백준 / BOJ] 1181번 단어 정렬(C++, Python) (0) | 2022.06.01 |
[백준 / BOJ] 11651번 좌표 정렬하기 2(C++, Python) (0) | 2022.06.01 |
@Reo :: 코드 아카이브
자기계발 블로그