๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Class3] 18870๋ฒˆ_์ขŒํ‘œ ์••์ถ•

Dbswnstjd 2022. 11. 7. 01:41

๋ฌธ์ œ

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

 

18870๋ฒˆ: ์ขŒํ‘œ ์••์ถ•

์ˆ˜์ง์„  ์œ„์— N๊ฐœ์˜ ์ขŒํ‘œ X1, X2, ..., XN์ด ์žˆ๋‹ค. ์ด ์ขŒํ‘œ์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค. Xi๋ฅผ ์ขŒํ‘œ ์••์ถ•ํ•œ ๊ฒฐ๊ณผ X'i์˜ ๊ฐ’์€ Xi > Xj๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ขŒํ‘œ์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. X1, X2, ..., XN์— ์ขŒ

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 18870๋ฒˆ ๋ฌธ์ œ - ์ขŒํ‘œ ์••์ถ•
n = int(input())
x = list(map(int, input().split()))
new_x = list(sorted(set(x)))

dict = {new_x[i]: i for i in range(len(new_x))}

for i in x:
    print(dict[i], end=" ")

๋งจ ์ฒ˜์Œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋– ์„œ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ƒ๊ฐํ•˜์˜€๋‹ค. 

N์ด๋ผ๋Š” ์ˆซ์ž๊ฐ€ 100๋งŒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋จผ์ € ์ƒ๊ฐํ–ˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. 

index(i)๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n)์ด๊ณ  ๋”•์…”๋„ˆ๋ฆฌ๋Š” O(1) ์ด๋ฏ€๋กœ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋‹ค.