본문 바로가기

PS/백준

[BOJ] 백준 18870 좌표 압축 (Swift)

반응형

문제

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

 

18870번: 좌표 압축

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

www.acmicpc.net

풀이

좌표를 압축한 결과 0 ~ 중복을 제거한 Array의 개수 - 1 까지 나타날 것입니다.

중복을 제거하는 것은 Set 메서드를 사용할 수 있습니다.

Set 자료형을 사용해 중복을 제거한 후, 이것을 오름차순으로 정렬해줍니다.

이제 오름차순으로 정렬이 되어있고, 중복이 없는 Array에 요소를 Key로 갖고, index를 Value로 갖는 Dictionary를 만들어줍시다.

맨 처음 입력받은 Array의 요소를 확인하면서, 매칭되어 있는 index를 출력해주면 됩니다.

소스코드

후기

Set, Dictionary 자료형정렬을 해주면 쉽게 풀 수 있는 문제입니다.

반응형