Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 6550
  • 백준 15961
  • 백준 16926
  • 백준 2467
  • 백준 12871
  • 자바
  • 백준 8892
  • 백준 15655
  • 백준 1011
  • 백준 16194
  • 백준 15312
  • 백준 1495
  • 백준 4659
  • 백준 1064
  • 백준 24039
  • 백준 7567
  • 백준 1747
  • 백준 2343
  • 백준 2225
  • 백준
  • 백준 10709
  • 백준 2591
  • 백준 14582
  • 백준 7662
  • 백준 1531
  • 백준 3049
  • Java
  • 백준 12605
  • 백준 3135
  • 백준 1914
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 18870 좌표 압축(Java)
백준

백준 18870 좌표 압축(Java)

2023. 2. 7. 23:25

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

 

18870번: 좌표 압축

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

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 좌표 압축을 사용하는 문제입니다. 자세한 내용은 위 영상을 참조하시기 바랍니다.

https://www.youtube.com/watch?v=_7dFwnPqahg&ab_channel=IOIKOREA


 

Java 코드

 


import java.util.Scanner;
import java.util.Arrays;
import java.util.HashMap;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    StringBuilder sb = new StringBuilder();
    HashMap<Integer, Integer> map = new HashMap<>();

    int count = 0;
    int n = sc.nextInt();
    int[] arr = new int[n];
    int[] sort = new int[n];

    for(int i = 0; i < n; i++) arr[i] = sort[i] = sc.nextInt();

    Arrays.sort(sort);

    for(int i = 0; i < n; i++) {
      if(!map.containsKey(sort[i])) map.put(sort[i], count++);
    }

    for(int i = 0; i < n; i++) sb.append(map.get(arr[i])+" ");

    System.out.println(sb);
  }
}

'백준' 카테고리의 다른 글

백준 2630 색종이 만들기(Java)  (0) 2023.02.08
백준 11725 트리의 부모 찾기(Java)  (0) 2023.02.08
백준 6603 로또(Java)  (0) 2023.02.07
백준 1182 부분수열의 합(Java)  (0) 2023.02.07
백준 10799 쇠막대기(Java)  (0) 2023.02.07
    '백준' 카테고리의 다른 글
    • 백준 2630 색종이 만들기(Java)
    • 백준 11725 트리의 부모 찾기(Java)
    • 백준 6603 로또(Java)
    • 백준 1182 부분수열의 합(Java)
    Park DJ
    Park DJ

    티스토리툴바