[Python] 백준/BOJ 18870번: 좌표 압축 (Silver 2)

2025. 2. 15. 11:00·Algorithm/백준 (BOJ)
반응형

💻 Problem

문제 보러 가기

 

수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.

Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다.

X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해 보자.

  • 1 ≤ N ≤ 1,000,000
  • -109 ≤ Xi ≤ 109

 

💡 Approach

이 문제는 처음에 이해하기 힘들었다..

좌표 압축이 무슨 말인지,,, 왜 하는 건지,,

친구한테 설명을 듣고 나서야 이해했다.

 

x[i]를 압축한 값은 x[i]`이다
x[i]` 값은 X[i] > x[j]를 만족하는 x[j]의 개수이다
=> x[i]` 값은 x[i]보다 작은 수의 개수이다

 

왜 구하나 싶을 수도 있는데 상위 티어 문제로 가면 좌표압축을 활용한 문제들이 있나 보다.

좌표 압축을 하면 상대적인 거리를 저장하여 메모리 사용을 줄인다.

 

✏️ Solution

import sys
input = sys.stdin.readline

n = int(input())
x = list(map(int, input().split()))

sorted_x = sorted(set(x))

dic = {}
for i in range(len(sorted_x)):
    dic[sorted_x[i]] = i

for i in x:
    print(dic.get(i), end=' ')
  • 시간복잡도: O(n)
반응형

'Algorithm > 백준 (BOJ)' 카테고리의 다른 글

[Python] 백준/BOJ 2960번: 에라토스테네스의 체 (Silver 4)  (0) 2025.02.17
[Python] 백준/BOJ 1389번: 케빈 베이컨의 6단계 법칙 (Silver 1)  (2) 2025.02.16
[Python] 백준/BOJ 2630번: 색종이 만들기 (Silver 2)  (0) 2025.02.08
[Python] 백준/BOJ 21736번: 헌내기는 친구가 필요해 (Silver 2)  (0) 2025.02.07
'Algorithm/백준 (BOJ)' 카테고리의 다른 글
  • [Python] 백준/BOJ 2960번: 에라토스테네스의 체 (Silver 4)
  • [Python] 백준/BOJ 1389번: 케빈 베이컨의 6단계 법칙 (Silver 1)
  • [Python] 백준/BOJ 2630번: 색종이 만들기 (Silver 2)
  • [Python] 백준/BOJ 21736번: 헌내기는 친구가 필요해 (Silver 2)
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (196) N
      • SSAFY (10)
      • Algorithm (114) N
        • 이론 (6)
        • 백준 (BOJ) (107) N
        • 프로그래머스 (1)
      • Trouble Shooting (9)
      • Frontend (6)
      • React (17)
      • Next.js (4)
      • Vue (4)
      • Node.js (2)
      • HTML (9)
      • DevOps (4)
        • Git (4)
      • Language (9)
        • JavaScript (0)
        • Java (9)
      • Embedded (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
      • 자격증 (2)
  • 블로그 메뉴

    • GitHub
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    재귀
    브루트포스
    React
    순열
    SSAFYcial
    중복순열
    오블완
    우선순위큐
    bfs
    블록체인
    dfs
    Next.js
    SSAFY
    강의
    Java
    수학
    티스토리챌린지
    파이썬
    알고리즘
    싸피
    DP
    Algorithm
    html5
    Error
    힙
    Heap
    백트래킹
    중복조합
    구현
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
올콩
[Python] 백준/BOJ 18870번: 좌표 압축 (Silver 2)
상단으로

티스토리툴바