๐ฉ๐ป๐พ
[๋ฐฑ์ค/Python] 18870๋ฒ ์ขํ ์์ถ ๋ณธ๋ฌธ
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๊ฐ์ ์ถ๋ ฅํด์ค๋ค.
'์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ค์ต์คํธ๋ผ ๋ฌธ์ ์ ๋ฆฌ (0) | 2024.01.21 |
---|---|
[๋ฐฑ์ค/Python] 18352๋ฒ ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ (0) | 2023.03.21 |
[๋ฐฑ์ค/Python] 1033๋ฒ ์นตํ ์ผ (0) | 2023.03.16 |
[๋ฐฑ์ค/Python] 1934๋ฒ ์ต์๊ณต๋ฐฐ์ (0) | 2023.03.15 |
[๋ฐฑ์ค/Python] 1456๋ฒ ๊ฑฐ์ ์์ (0) | 2023.03.15 |