[알고리즘] 18870 좌표 압축
게시물을 작성하면서 복습하는 문제를 선정하는 기준은<solved.ac 티어 실버 2 (Silver 2) 이상>입니다.
※ 본 사진과 해당 게시글 내용의 문제 모두 백준 : 온라인 저지[Baekjoon_OnlineJudge]사이트에서 발췌해왔습니다.
❓ 문제
백준 온라인 저지 (Baekjoon Online Judge) : 18870 좌표 압축
❗ 풀이
My Code
메모리 : 148208KB
시간 : 2124ms
import sys
N = int(sys.stdin.readline())
ls = set()
num = list(map(int,sys.stdin.readline().rstrip().split()))
ls = sorted(list(set(num)))
d = {ls[i] : i for i in range(len(ls))}
for n in num :
print(d[n], end=' ')
메모리 : 148208KB
시간 : 2124ms
import sys
N = int(sys.stdin.readline())
ls = set()
num = list(map(int,sys.stdin.readline().rstrip().split()))
ls = sorted(list(set(num)))
d = {ls[i] : i for i in range(len(ls))}
for n in num :
print(d[n], end=' ')
단순하게 set 와 dictionary로 풀 수 있는 문제였다.
입려되는 N개의 숫자들을 하나씩만 사용해서 index를 부여해야하기 때문에
우선 중복값이 없도록 set로 받아준다.
그 이후, set를 다시 list로 변환한 후, 정렬해준다.
( set객체에는 정렬 불가능 )
그 이후,
for문을 통해
정렬된 순서대로 index값을 부여한 dict객체를 만들고
이를 활용해
처음 받았던 숫자 배열 요소들을
dictionary에서 조회하여 출력한다.
해결방법이 어렵다기보다는 여러 객체 유형에 대한 기본 지식이 필요했던 문제였던 것 같다.
Author And Source
이 문제에 관하여([알고리즘] 18870 좌표 압축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yummygyudon/알고리즘-18870-좌표-압축저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)