๋ฐฑ์ค (BOJ) 18870๋ฒ
https://www.acmicpc.net/problem/18870
์ฌ์ฉ์ธ์ด : PYTHON
1.๋ฌธ์
์์ง์ ์์ N๊ฐ์ ์ขํ X1, X2, ..., XN์ด ์๋ค. ์ด ์ขํ์ ์ขํ ์์ถ์ ์ ์ฉํ๋ ค๊ณ ํ๋ค.
Xi๋ฅผ ์ขํ ์์ถํ ๊ฒฐ๊ณผ X'i์ ๊ฐ์ Xi > Xj๋ฅผ ๋ง์กฑํ๋ ์๋ก ๋ค๋ฅธ ์ขํ์ ๊ฐ์์ ๊ฐ์์ผ ํ๋ค.
X1, X2, ..., XN์ ์ขํ ์์ถ์ ์ ์ฉํ ๊ฒฐ๊ณผ X'1, X'2, ..., X'N๋ฅผ ์ถ๋ ฅํด๋ณด์.
์ฆ [2,10,15,1,1] ๋ผ๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ๊ฐ์ ๋์๊ด๊ณ๋ง ๊ณ ๋ คํ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ผ๋ ๊ฒ์ด๋ค.
(์ ์์์ ์ ๋ต : [1,2,3,0,0])
2.ํ์ด
๊ฐ ์์์ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ ์ ๋ ฌ ํ ๋ค์, ๊ฐ ๊ฐ์ 0๋ถํฐ ์์๋ฅผ ๋ถ์ฌํ๋ฉด ๋๋ค.
์ฒ์์๋ indexํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์น๋ฅผ ์ถ๋ ฅํ์๋๋ฐ, ์ด๋ ๊ฒํ๋ฉด ๋ชจ๋ ์์์ ๋ํด์(N) index๋ฅผ ์ํ(O(N))ํ์ฌ ์ต์ข
์ ์ผ๋ก O(N**2)์ ์๊ฐ๋ณต์ก๋๊ฐ ๊ฑธ๋ฆฌ๊ฒ ๋์ด ์๊ฐ์ด๊ณผ๊ฐ ๋์๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด dictionary์์ ์์ ์ ์์น๋ฅผ ํ ๋นํ์ฌ ๋ฐ๋ก ์ถ๋ ฅ(=O(1)์ ์๊ฐ๋ณต์ก๋)ํ๊ฒ ํ์๋ค.
3-1.์๊ฐ์ด๊ณผ ์ฝ๋
import sys
input = sys.stdin.readline
_=int(input())
l=list(map(int,input().split()))
l_component=list(set(l))
l_component.sort()
for i in l:
print(l_component.index(i),end=' ') # O(n**2)์ ์๊ฐ๋ณต์ก๋
3-2.์ ๋ต์ฝ๋
import sys
input = sys.stdin.readline
N=int(input())
l=list(map(int,input().split()))
l_component=sorted(list(set(l)))
l_dict={l_component[i]:i for i in range(len(l_component))}
for i in l:
print(l_dict[i]) # O(N)์ ์๊ฐ๋ณต์ก๋
'๐์ฝ๋ฉํ ์คํธ:CodingTest' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 17298๋ฒ-ํ์ด์ฌ]์คํฐ์ (0) | 2023.06.20 |
---|---|
[๋ฐฑ์ค 1406๋ฒ-ํ์ด์ฌ]์๋ํฐ (0) | 2023.06.20 |
[๋ฐฑ์ค 2108๋ฒ-ํ์ด์ฌ]ํต๊ณํ (0) | 2023.06.20 |
[๋ฐฑ์ค 1181๋ฒ-ํ์ด์ฌ]๋จ์ด ์ ๋ ฌ (0) | 2023.06.19 |
[๋ฐฑ์ค 11729๋ฒ-ํ์ด์ฌ]ํ๋ ธ์ด ํ ์ด๋ ์์ (0) | 2023.06.19 |