๐Ÿ‘ฉ๐Ÿป‍๐ŸŒพ

[๋ฐฑ์ค€/Python] 18870๋ฒˆ ์ขŒํ‘œ ์••์ถ• ๋ณธ๋ฌธ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€/Python] 18870๋ฒˆ ์ขŒํ‘œ ์••์ถ•

์ฅฌ์Šค์ด 2023. 4. 2. 10:37
728x90

1๏ธโƒฃ ๋ฌธ์ œ ์„ค๋ช…

์ˆ˜์ง์„  ์œ„์— N๊ฐœ์˜ ์ขŒํ‘œ X1, X2, ..., XN์ด ์žˆ๋‹ค. ์ด ์ขŒํ‘œ์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

Xi๋ฅผ ์ขŒํ‘œ ์••์ถ•ํ•œ ๊ฒฐ๊ณผ X'i์˜ ๊ฐ’์€ Xi > Xj๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ขŒํ‘œ์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

X1, X2, ..., XN์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•œ ๊ฒฐ๊ณผ X'1, X'2, ..., X'N๋ฅผ ์ถœ๋ ฅํ•ด๋ณด์ž.

2๏ธโƒฃ ์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค.

๋‘˜์งธ ์ค„์—๋Š” ๊ณต๋ฐฑ ํ•œ ์นธ์œผ๋กœ ๊ตฌ๋ถ„๋œ X1, X2, ..., XN์ด ์ฃผ์–ด์ง„๋‹ค.

3๏ธโƒฃ ์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— X'1, X'2, ..., X'N์„ ๊ณต๋ฐฑ ํ•œ ์นธ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.

 


๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์ž‘์„ฑํ•œ ์ฝ”๋“œ

import sys
import heapq

input = sys.stdin.readline

n = int(input())
pos = list(map(int, input().split()))
setP = sorted(list(set(pos))) # ์ค‘๋ณต๊ฐ’ ์—†์• ์ฃผ๊ธฐ ์œ„ํ•ด set์œผ๋กœ ๋ณ€ํ™˜ ํ›„, ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜
dic = {}	# setP ์ธ๋ฑ์Šค ์ •๋ณด ์ €์žฅํ•  ๋”•์…”๋„ˆ๋ฆฌ

for i in range(len(setP)):
    dic[setP[i]]=i

for i in pos:
    print(dic[i], end = ' ')

๐Ÿ’ก ์ฝ”๋“œ ์„ค๋ช…

์ด ๋ฌธ์ œ๋Š” ๋ฆฌ์ŠคํŠธ ์•ˆ์—์„œ ์›์†Œ์˜ ํฌ๊ธฐ ์ˆœ์„œ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

์ค‘๋ณต๋˜๋Š” ์›์†Œ์˜ ํฌ๊ธฐ ์ˆœ์„œ๋Š” ์„œ๋กœ ๊ฐ™์œผ๋ฏ€๋กœ ์šฐ์„  set์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•ด์ค€ ๋’ค, ๋ฆฌ์ŠคํŠธ๋กœ ๋‹ค์‹œ ๋ณ€ํ™˜์‹œ์ผœ ์ •๋ ฌํ•ด์ฃผ์—ˆ๋‹ค.

for i in range(len(setP)):
    dic[setP[i]]=i

โฌ†๏ธ for๋ฌธ์„ ํ†ตํ•ด, ๋”•์…”๋„ˆ๋ฆฌ dic์— { setP[ i ] : i } ๋กœ key๊ฐ’๊ณผ value๊ฐ’์„ ์ €์žฅํ•ด์ค€๋‹ค.

 

์˜ˆ์ œ 1์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด dic์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

for i in pos:
    print(dic[i], end = ' ')

โฌ†๏ธ for๋ฌธ์„ ํ†ตํ•ด, dic์—์„œ i์™€ ๋งคํ•‘๋˜๋Š” value๊ฐ’์„ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

728x90
Comments